Files
funnygame/funnyassets/gfx/ml_quad.metal

35 lines
754 B
Metal

#include <metal_stdlib>
using namespace metal;
struct VertexOut {
float4 position [[position]];
float2 texCoord;
};
vertex VertexOut vertex_main(uint vertexID [[vertex_id]]) {
float2 pos[] = {
{-1.0, -1.0},
{ 1.0, -1.0},
{-1.0, 1.0},
{ 1.0, 1.0},
};
float2 uv[] = {
{0.0, 1.0},
{1.0, 1.0},
{0.0, 0.0},
{1.0, 0.0},
};
VertexOut out;
out.position = float4(pos[vertexID], 0.0, 1.0);
out.texCoord = uv[vertexID];
return out;
}
fragment float4 fragment_main(VertexOut in [[stage_in]],
texture2d<float> tex [[texture(0)]]) {
constexpr sampler s(filter::linear);
return pow(tex.sample(s, in.texCoord), 0.45f);
}