Texture2D tex : register(t0); SamplerState _tex_sampler : register(s0); Texture2D mask : register(t2); SamplerState _mask_sampler : register(s2); static float4 gl_FragCoord; static float4 fragColor; static float2 vUV; static float4 vTint; static uint vExtra; struct SPIRV_Cross_Input { float2 vUV : TEXCOORD0; float4 vTint : TEXCOORD1; nointerpolation uint vExtra : TEXCOORD2; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 fragColor : SV_Target0; }; void frag_main() { fragColor = (vTint * tex.Sample(_tex_sampler, vUV).x) * mask.Load(int3(int2(gl_FragCoord.xy), 0)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; vUV = stage_input.vUV; vTint = stage_input.vTint; vExtra = stage_input.vExtra; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragColor = fragColor; return stage_output; }