mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-06-16 11:33:43 +00:00
Pull the HLSL transformation out to a standalone transform that can be used by both HLSL and MSL. The new E2E tests do not yet pass for MSL because they produce array assignments, which will be addressed in the next patch. Fixed: tint:826 Change-Id: Idc27c81ad45e3d4ab96d82663927d2fc1384618e Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52842 Auto-Submit: James Price <jrprice@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
45 lines
1.2 KiB
Plaintext
45 lines
1.2 KiB
Plaintext
#include <metal_stdlib>
|
|
|
|
using namespace metal;
|
|
struct Uniforms {
|
|
/* 0x0000 */ float4x4 modelViewProjectionMatrix;
|
|
};
|
|
struct VertexInput {
|
|
float4 cur_position;
|
|
float4 color;
|
|
};
|
|
struct VertexOutput {
|
|
float4 vtxFragColor;
|
|
float4 Position;
|
|
};
|
|
struct tint_symbol_1 {
|
|
float4 cur_position [[attribute(0)]];
|
|
float4 color [[attribute(1)]];
|
|
};
|
|
struct tint_symbol_2 {
|
|
float4 vtxFragColor [[user(locn0)]];
|
|
float4 Position [[position]];
|
|
};
|
|
struct tint_symbol_4 {
|
|
float4 fragColor [[user(locn0)]];
|
|
};
|
|
struct tint_symbol_5 {
|
|
float4 value [[color(0)]];
|
|
};
|
|
|
|
vertex tint_symbol_2 vtx_main(tint_symbol_1 tint_symbol [[stage_in]], constant Uniforms& uniforms [[buffer(0)]]) {
|
|
VertexInput const input = {tint_symbol.cur_position, tint_symbol.color};
|
|
VertexOutput output = {};
|
|
output.Position = (uniforms.modelViewProjectionMatrix * input.cur_position);
|
|
output.vtxFragColor = input.color;
|
|
tint_symbol_2 const tint_symbol_6 = {output.vtxFragColor, output.Position};
|
|
return tint_symbol_6;
|
|
}
|
|
|
|
fragment tint_symbol_5 frag_main(tint_symbol_4 tint_symbol_3 [[stage_in]]) {
|
|
float4 const fragColor = tint_symbol_3.fragColor;
|
|
tint_symbol_5 const tint_symbol_7 = {fragColor};
|
|
return tint_symbol_7;
|
|
}
|
|
|