blob: 037af8a23337218bfb55e5b4c1f290816ff9030a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
typedef struct {
float x;
float y;
}position;
typedef struct {
float r;
float g;
float b;
}color;
typedef struct {
position p;
color c;
}AAPLVertex;
struct ColorInOut {
float4 position[[position]];
float4 color;
};
vertex ColorInOut vs(constant AAPLVertex * vertex_array[[buffer(0)]], unsigned int vid[[vertex_id]]) {
ColorInOut out;
out.position = float4(float2(vertex_array[vid].p.x, vertex_array[vid].p.y), 0.0, 1.0);
out.color = float4(float3(vertex_array[vid].c.r, vertex_array[vid].c.g, vertex_array[vid].c.b), 1.0);
return out;
}
fragment float4 ps(ColorInOut in [[stage_in]]) {
return in.color;
}
|