ebiten/internal/shader/testdata/vertex.expected.metal
Hajime Hoshi 5c63c4a4aa internal/graphicsdriver/metal: support macOS 10.12 by removing packed types
From the Metal shading language specification [1] Table 2.2.3, attribute
variables in Ebitengine's vertices don't have to be packed. Then, we can
remove `packed` types.

[1] https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf

Closes #2107
2022-05-28 23:57:59 +09:00

25 lines
611 B
Metal

struct Attributes {
float2 M0;
float2 M1;
float4 M2;
};
struct Varyings {
float4 Position [[position]];
float2 M0;
float4 M1;
};
vertex Varyings Vertex(
uint vid [[vertex_id]],
const device Attributes* attributes [[buffer(0)]],
constant float2& U0 [[buffer(1)]]) {
Varyings varyings = {};
float4x4 l0 = float4x4(0);
l0 = float4x4((2.0) / ((U0).x), 0.0, 0.0, 0.0, 0.0, (2.0) / ((U0).y), 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0);
varyings.Position = (l0) * (float4(attributes[vid].M0, 0.0, 1.0));
varyings.M0 = attributes[vid].M1;
varyings.M1 = attributes[vid].M2;
return varyings;
}