Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[platform/upstream/glslang.git] / Test / hlsl.nonstaticMemberFunction.frag
1 static float2 i = float2(1.0, 2.0);\r
2 \r
3 struct type1\r
4 {\r
5     void setmem(float4 m) { memVar = m; }\r
6     void seti(int si) { i = si; }\r
7     float4 memVar;\r
8     float4 memFun(float4 a) : SV_Position\r
9     {\r
10         return i * a + memVar;\r
11     }\r
12     int memFun(int a) : SV_Position\r
13     {\r
14         return i + a - memVar.z;\r
15     }\r
16     int i;\r
17 };\r
18 \r
19 static float2 j = i;\r
20 \r
21 struct type2\r
22 {\r
23     float2 memFun() { return i; }\r
24 };\r
25 \r
26 float4 main() : SV_Target0\r
27 {\r
28    type1 test;\r
29    test.setmem(float4(2.0,2.0,2.0,2.0));\r
30    test.seti(17);\r
31    float4 f4 = float4(1.0,1.0,1.0,1.0);\r
32    f4 += test.memFun(float4(5.0f,5.0f,5.0f,5.0f));\r
33    f4 += test.memFun(7);\r
34    return f4;\r
35 }\r