summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/renderer/d3d/d3d11/shaders/Clear11.hlsl
blob: b4cf38076ed762c67f96c41ec77e9c7392846ab9 (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// Assume we are in SM4+, which has 8 color outputs

void VS_ClearFloat( in float3  inPosition :    POSITION,  in float4  inColor : COLOR,
                   out float4 outPosition : SV_POSITION, out float4 outColor : COLOR)
{
    outPosition = float4(inPosition, 1.0f);
    outColor = inColor;
}

struct PS_OutputFloat
{
    float4 color0 : SV_TARGET0;
    float4 color1 : SV_TARGET1;
    float4 color2 : SV_TARGET2;
    float4 color3 : SV_TARGET3;
#if SM4
    float4 color4 : SV_TARGET4;
    float4 color5 : SV_TARGET5;
    float4 color6 : SV_TARGET6;
    float4 color7 : SV_TARGET7;
#endif
};

PS_OutputFloat PS_ClearFloat(in float4 inPosition : SV_POSITION, in float4 inColor : COLOR)
{
    PS_OutputFloat outColor;
    outColor.color0 = inColor;
    outColor.color1 = inColor;
    outColor.color2 = inColor;
    outColor.color3 = inColor;
#if SM4
    outColor.color4 = inColor;
    outColor.color5 = inColor;
    outColor.color6 = inColor;
    outColor.color7 = inColor;
#endif
    return outColor;
}


void VS_ClearUint( in float3  inPosition :    POSITION,   in uint4  inColor : COLOR,
                   out float4 outPosition : SV_POSITION, out uint4 outColor : COLOR)
{
    outPosition = float4(inPosition, 1.0f);
    outColor = inColor;
}

struct PS_OutputUint
{
    uint4 color0 : SV_TARGET0;
    uint4 color1 : SV_TARGET1;
    uint4 color2 : SV_TARGET2;
    uint4 color3 : SV_TARGET3;
    uint4 color4 : SV_TARGET4;
    uint4 color5 : SV_TARGET5;
    uint4 color6 : SV_TARGET6;
    uint4 color7 : SV_TARGET7;
};

PS_OutputUint PS_ClearUint(in float4 inPosition : SV_POSITION, in uint4 inColor : COLOR)
{
    PS_OutputUint outColor;
    outColor.color0 = inColor;
    outColor.color1 = inColor;
    outColor.color2 = inColor;
    outColor.color3 = inColor;
    outColor.color4 = inColor;
    outColor.color5 = inColor;
    outColor.color6 = inColor;
    outColor.color7 = inColor;
    return outColor;
}


void VS_ClearSint( in float3  inPosition :    POSITION,   in int4  inColor : COLOR,
                   out float4 outPosition : SV_POSITION, out int4 outColor : COLOR)
{
    outPosition = float4(inPosition, 1.0f);
    outColor = inColor;
}

struct PS_OutputSint
{
    int4 color0 : SV_TARGET0;
    int4 color1 : SV_TARGET1;
    int4 color2 : SV_TARGET2;
    int4 color3 : SV_TARGET3;
    int4 color4 : SV_TARGET4;
    int4 color5 : SV_TARGET5;
    int4 color6 : SV_TARGET6;
    int4 color7 : SV_TARGET7;
};

PS_OutputSint PS_ClearSint(in float4 inPosition : SV_POSITION, in int4 inColor : COLOR)
{
    PS_OutputSint outColor;
    outColor.color0 = inColor;
    outColor.color1 = inColor;
    outColor.color2 = inColor;
    outColor.color3 = inColor;
    outColor.color4 = inColor;
    outColor.color5 = inColor;
    outColor.color6 = inColor;
    outColor.color7 = inColor;
    return outColor;
}