mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-07-12 01:12:44 +00:00
98 lines
2 KiB
Text
98 lines
2 KiB
Text
Vertex shader is
|
|
|
|
#version 410 core
|
|
layout(location=0) in vec4 aVtxPos;
|
|
layout(location=0) out vec4 vVtxPos;
|
|
layout(location=1) in vec2 aTexCoord;
|
|
layout(location=1) out vec2 vTexCoord;
|
|
void main() {
|
|
vVtxPos = aVtxPos;
|
|
vTexCoord = aTexCoord;
|
|
gl_Position = aVtxPos;
|
|
}
|
|
|
|
|
|
Fragment shader is
|
|
|
|
#version 410 core
|
|
uniform sampler2D uPassTex;
|
|
layout(location=0) in vec4 vVtxPos;
|
|
layout(location=1) in vec2 vTexCoord;
|
|
layout(location=0) out vec4 fragColor;
|
|
void main() {
|
|
fragColor = texture(uPassTex, vTexCoord);
|
|
}
|
|
|
|
|
|
Generated Vertex HLSL:
|
|
static float4 gl_Position;
|
|
static float4 vVtxPos;
|
|
static float4 aVtxPos;
|
|
static float2 vTexCoord;
|
|
static float2 aTexCoord;
|
|
|
|
struct SPIRV_Cross_Input
|
|
{
|
|
float4 aVtxPos : TEXCOORD0;
|
|
float2 aTexCoord : TEXCOORD1;
|
|
};
|
|
|
|
struct SPIRV_Cross_Output
|
|
{
|
|
float4 vVtxPos : TEXCOORD0;
|
|
float2 vTexCoord : TEXCOORD1;
|
|
float4 gl_Position : SV_Position;
|
|
};
|
|
|
|
void vert_main()
|
|
{
|
|
vVtxPos = aVtxPos;
|
|
vTexCoord = aTexCoord;
|
|
gl_Position = aVtxPos;
|
|
}
|
|
|
|
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
|
|
{
|
|
aVtxPos = stage_input.aVtxPos;
|
|
aTexCoord = stage_input.aTexCoord;
|
|
vert_main();
|
|
SPIRV_Cross_Output stage_output;
|
|
stage_output.gl_Position = gl_Position;
|
|
stage_output.vVtxPos = vVtxPos;
|
|
stage_output.vTexCoord = vTexCoord;
|
|
return stage_output;
|
|
}
|
|
|
|
Generated Fragment HLSL:
|
|
Texture2D<float4> uPassTex : register(t10);
|
|
SamplerState _uPassTex_sampler : register(s10);
|
|
|
|
static float4 fragColor;
|
|
static float2 vTexCoord;
|
|
static float4 vVtxPos;
|
|
|
|
struct SPIRV_Cross_Input
|
|
{
|
|
float4 vVtxPos : TEXCOORD0;
|
|
float2 vTexCoord : TEXCOORD1;
|
|
};
|
|
|
|
struct SPIRV_Cross_Output
|
|
{
|
|
float4 fragColor : SV_Target0;
|
|
};
|
|
|
|
void frag_main()
|
|
{
|
|
fragColor = uPassTex.Sample(_uPassTex_sampler, vTexCoord);
|
|
}
|
|
|
|
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
|
|
{
|
|
vTexCoord = stage_input.vTexCoord;
|
|
vVtxPos = stage_input.vVtxPos;
|
|
frag_main();
|
|
SPIRV_Cross_Output stage_output;
|
|
stage_output.fragColor = fragColor;
|
|
return stage_output;
|
|
}
|