diff options
Diffstat (limited to 'examples/hellooffscreen/shader.hlsl')
-rw-r--r-- | examples/hellooffscreen/shader.hlsl | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/hellooffscreen/shader.hlsl b/examples/hellooffscreen/shader.hlsl new file mode 100644 index 0000000..c626447 --- /dev/null +++ b/examples/hellooffscreen/shader.hlsl @@ -0,0 +1,52 @@ +cbuffer ConstantBuffer : register(b0) +{ + float4x4 modelview; + float4x4 projection; +}; + +struct PSInput +{ + float4 position : SV_POSITION; + float4 color : COLOR; +}; + +PSInput VS_Offscreen(float4 position : POSITION, float4 color : COLOR) +{ + PSInput result; + + float4x4 mvp = mul(projection, modelview); + result.position = mul(mvp, position); + result.color = color; + + return result; +} + +float4 PS_Offscreen(PSInput input) : SV_TARGET +{ + return input.color; +} + +struct PSInput2 +{ + float4 position : SV_POSITION; + float2 coord : TEXCOORD0; +}; + +PSInput2 VS_Onscreen(float4 position : POSITION, float2 coord : TEXCOORD0) +{ + PSInput2 result; + + float4x4 mvp = mul(projection, modelview); + result.position = mul(mvp, position); + result.coord = coord; + + return result; +} + +Texture2D tex : register(t0); +SamplerState samp : register(s0); + +float4 PS_Onscreen(PSInput2 input) : SV_TARGET +{ + return tex.Sample(samp, input.coord); +} |