SPIRV-Cross/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert

52 lines
1.2 KiB
GLSL
Raw Normal View History

static float4 gl_Position;
static float4x4 m4;
static float4 v;
static float3x3 m3;
static float2x2 m2;
struct SPIRV_Cross_Input
{
float4 m4_0 : TEXCOORD0;
float4 m4_1 : TEXCOORD1;
float4 m4_2 : TEXCOORD2;
float4 m4_3 : TEXCOORD3;
float3 m3_0 : TEXCOORD4;
float3 m3_1 : TEXCOORD5;
float3 m3_2 : TEXCOORD6;
float2 m2_0 : TEXCOORD7;
float2 m2_1 : TEXCOORD8;
float4 v : TEXCOORD9;
};
struct SPIRV_Cross_Output
{
float4 gl_Position : SV_Position;
};
void vert_main()
{
gl_Position = mul(v, m4);
float3 _37 = gl_Position.xyz + mul(v.xyz, m3);
gl_Position = float4(_37.x, _37.y, _37.z, gl_Position.w);
float2 _52 = gl_Position.xy + mul(v.xy, m2);
gl_Position = float4(_52.x, _52.y, gl_Position.z, gl_Position.w);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
m4[0] = stage_input.m4_0;
m4[1] = stage_input.m4_1;
m4[2] = stage_input.m4_2;
m4[3] = stage_input.m4_3;
v = stage_input.v;
m3[0] = stage_input.m3_0;
m3[1] = stage_input.m3_1;
m3[2] = stage_input.m3_2;
m2[0] = stage_input.m2_0;
m2[1] = stage_input.m2_1;
vert_main();
SPIRV_Cross_Output stage_output;
stage_output.gl_Position = gl_Position;
return stage_output;
}