aboutsummaryrefslogtreecommitdiffstats
path: root/examples/hellooffscreen/shader.hlsl
blob: c62644797eb7ba61ffa573286d5b021aeba8db25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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);
}