File: hlsl.texture.struct.frag

package info (click to toggle)
glslang 16.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 51,720 kB
  • sloc: cpp: 92,305; yacc: 4,320; sh: 603; python: 305; ansic: 94; javascript: 74; makefile: 17
file content (55 lines) | stat: -rw-r--r-- 1,222 bytes parent folder | download | duplicates (18)
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
struct s1_t {
    float  c0;
    float2 c1;
    float  c2;
};

struct s2_t {
    float  c0;
    float3 c1;
};

struct s3_t {
    float2  c0;
    float1  c1;
};

struct s4_t {
    int  c0;
    int2 c1;
    int  c2;
};

struct s5_t {
    uint c0;
    uint c1;
};

SamplerState g_sSamp;
Texture2D <s1_t>   g_tTex2s1;
Texture2D <s2_t>   g_tTex2s2;
Texture2D <s3_t>   g_tTex2s3;
Texture2D <s4_t>   g_tTex2s4;
Texture2D <s5_t>   g_tTex2s5;

Texture2D <s1_t>   g_tTex2s1a; // same type as g_tTex2s1, to test fn signature matching.

// function overloading to test name mangling with textures templatized on structs
s1_t fn1(Texture2D <s1_t> t1) { return t1 . Sample(g_sSamp, float2(0.6, 0.61)); }
s2_t fn1(Texture2D <s2_t> t2) { return t2 . Sample(g_sSamp, float2(0.6, 0.61)); }

float4 main() : SV_Target0
{
    s1_t s1 = g_tTex2s1 . Sample(g_sSamp, float2(0.1, 0.11));
    s2_t s2 = g_tTex2s2 . Sample(g_sSamp, float2(0.2, 0.21));
    s3_t s3 = g_tTex2s3 . Sample(g_sSamp, float2(0.3, 0.31));
    s4_t s4 = g_tTex2s4 . Sample(g_sSamp, float2(0.4, 0.41));
    s5_t s5 = g_tTex2s5 . Sample(g_sSamp, float2(0.5, 0.51));

    s1_t r0 = fn1(g_tTex2s1);
    s2_t r1 = fn1(g_tTex2s2);
    s1_t r2 = fn1(g_tTex2s1a);

    return 0;
}