diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-06-09 01:43:02 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-06-09 01:43:02 +1000 |
commit | 859ea7e23d2bbbc4b32b43727ae50aebe399e720 (patch) | |
tree | 868b5d938cec7846637cf403cde3723829822305 /assets/shaders/triangle.metal | |
parent | 19a5fae08d7f1f85cb5448a5f2b19f0f9d342a0e (diff) |
metal is back, baby
Diffstat (limited to 'assets/shaders/triangle.metal')
-rw-r--r-- | assets/shaders/triangle.metal | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/assets/shaders/triangle.metal b/assets/shaders/triangle.metal new file mode 100644 index 0000000..6055705 --- /dev/null +++ b/assets/shaders/triangle.metal @@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; + +struct VertexIn { + float2 position; + float3 color; +}; + +struct VertexOut { + float4 computedPosition [[position]]; + float3 fragColor; +}; + +// Vertex shader +vertex VertexOut basic_vertex( + const device VertexIn* vertex_array [[ buffer(0) ]], + unsigned int vid [[ vertex_id ]] + ) { + VertexIn v = vertex_array[vid]; + + VertexOut outVertex = VertexOut(); + outVertex.computedPosition = float4(v.position.xy, 0.0, 1.0); + outVertex.fragColor = v.color; + return outVertex; +} + +// Fragment shader +fragment float4 basic_fragment( + VertexOut interpolated [[stage_in]] +) { + return float4(interpolated.fragColor, 1.0); +}
\ No newline at end of file |