68 lines
1.5 KiB
GLSL
68 lines
1.5 KiB
GLSL
|
struct V2F
|
||
|
{
|
||
|
float4 Position;
|
||
|
float4 Color;
|
||
|
};
|
||
|
|
||
|
struct InstanceData
|
||
|
{
|
||
|
column_major float4x4 MATRIX_MVP;
|
||
|
float4 Color;
|
||
|
};
|
||
|
|
||
|
cbuffer gInstanceData : register(b0)
|
||
|
{
|
||
|
InstanceData gInstanceData_1_data[32] : packoffset(c0);
|
||
|
};
|
||
|
|
||
|
|
||
|
static float4 gl_Position;
|
||
|
static int gl_InstanceIndex;
|
||
|
static float3 PosL;
|
||
|
static float4 _entryPointOutput_Color;
|
||
|
|
||
|
struct SPIRV_Cross_Input
|
||
|
{
|
||
|
float3 PosL : TEXCOORD0;
|
||
|
uint gl_InstanceIndex : SV_InstanceID;
|
||
|
};
|
||
|
|
||
|
struct SPIRV_Cross_Output
|
||
|
{
|
||
|
float4 _entryPointOutput_Color : TEXCOORD0;
|
||
|
float4 gl_Position : SV_Position;
|
||
|
};
|
||
|
|
||
|
V2F _VS(float3 PosL_1, uint instanceID)
|
||
|
{
|
||
|
InstanceData instData;
|
||
|
instData.MATRIX_MVP = gInstanceData_1_data[instanceID].MATRIX_MVP;
|
||
|
instData.Color = gInstanceData_1_data[instanceID].Color;
|
||
|
V2F v2f;
|
||
|
v2f.Position = mul(float4(PosL_1, 1.0f), instData.MATRIX_MVP);
|
||
|
v2f.Color = instData.Color;
|
||
|
return v2f;
|
||
|
}
|
||
|
|
||
|
void vert_main()
|
||
|
{
|
||
|
float3 PosL_1 = PosL;
|
||
|
uint instanceID = uint(gl_InstanceIndex);
|
||
|
float3 param = PosL_1;
|
||
|
uint param_1 = instanceID;
|
||
|
V2F flattenTemp = _VS(param, param_1);
|
||
|
gl_Position = flattenTemp.Position;
|
||
|
_entryPointOutput_Color = flattenTemp.Color;
|
||
|
}
|
||
|
|
||
|
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
|
||
|
{
|
||
|
gl_InstanceIndex = int(stage_input.gl_InstanceIndex);
|
||
|
PosL = stage_input.PosL;
|
||
|
vert_main();
|
||
|
SPIRV_Cross_Output stage_output;
|
||
|
stage_output.gl_Position = gl_Position;
|
||
|
stage_output._entryPointOutput_Color = _entryPointOutput_Color;
|
||
|
return stage_output;
|
||
|
}
|