sm64coopdx/shaders.txt
2026-05-15 19:26:37 -05:00

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;
}