1617a3babSopenharmony_ciSamplerState       g_sSamp : register(s0);
2617a3babSopenharmony_ci
3617a3babSopenharmony_ciuniform Texture1D <float4> g_tTex1df4 : register(t0);
4617a3babSopenharmony_ciTexture1D <int4>   g_tTex1di4;
5617a3babSopenharmony_ciTexture1D <uint4>  g_tTex1du4;
6617a3babSopenharmony_ci
7617a3babSopenharmony_ciTexture2D <float4> g_tTex2df4;
8617a3babSopenharmony_ciTexture2D <int4>   g_tTex2di4;
9617a3babSopenharmony_ciTexture2D <uint4>  g_tTex2du4;
10617a3babSopenharmony_ci
11617a3babSopenharmony_ciTexture3D <float4> g_tTex3df4;
12617a3babSopenharmony_ciTexture3D <int4>   g_tTex3di4;
13617a3babSopenharmony_ciTexture3D <uint4>  g_tTex3du4;
14617a3babSopenharmony_ci
15617a3babSopenharmony_ciTextureCube <float4> g_tTexcdf4;
16617a3babSopenharmony_ciTextureCube <int4>   g_tTexcdi4;
17617a3babSopenharmony_ciTextureCube <uint4>  g_tTexcdu4;
18617a3babSopenharmony_ci
19617a3babSopenharmony_ciTexture1DArray <float4> g_tTex1df4a;
20617a3babSopenharmony_ciTexture1DArray <int4>   g_tTex1di4a;
21617a3babSopenharmony_ciTexture1DArray <uint4>  g_tTex1du4a;
22617a3babSopenharmony_ci
23617a3babSopenharmony_ciTexture2DArray <float4> g_tTex2df4a;
24617a3babSopenharmony_ciTexture2DArray <int4>   g_tTex2di4a;
25617a3babSopenharmony_ciTexture2DArray <uint4>  g_tTex2du4a;
26617a3babSopenharmony_ci
27617a3babSopenharmony_ciTextureCubeArray <float4> g_tTexcdf4a;
28617a3babSopenharmony_ciTextureCubeArray <int4>   g_tTexcdi4a;
29617a3babSopenharmony_ciTextureCubeArray <uint4>  g_tTexcdu4a;
30617a3babSopenharmony_ci
31617a3babSopenharmony_ciTexture2DMS <float4> g_tTex2dmsf4;
32617a3babSopenharmony_ciTexture2DMS <int4>   g_tTex2dmsi4;
33617a3babSopenharmony_ciTexture2DMS <uint4>  g_tTex2dmsu4;
34617a3babSopenharmony_ci
35617a3babSopenharmony_ciTexture2DMSArray <float4> g_tTex2dmsf4a;
36617a3babSopenharmony_ciTexture2DMSArray <int4>   g_tTex2dmsi4a;
37617a3babSopenharmony_ciTexture2DMSArray <uint4>  g_tTex2dmsu4a;
38617a3babSopenharmony_ci
39617a3babSopenharmony_cistruct PS_OUTPUT
40617a3babSopenharmony_ci{
41617a3babSopenharmony_ci    float4 Color : SV_Target0;
42617a3babSopenharmony_ci    float  Depth : SV_Depth;
43617a3babSopenharmony_ci};
44617a3babSopenharmony_ci
45617a3babSopenharmony_ciPS_OUTPUT main()
46617a3babSopenharmony_ci{
47617a3babSopenharmony_ci   PS_OUTPUT psout;
48617a3babSopenharmony_ci
49617a3babSopenharmony_ci   uint MipLevel;
50617a3babSopenharmony_ci   uint WidthU;
51617a3babSopenharmony_ci   uint HeightU;
52617a3babSopenharmony_ci   uint ElementsU;
53617a3babSopenharmony_ci   uint DepthU;
54617a3babSopenharmony_ci   uint NumberOfLevelsU;
55617a3babSopenharmony_ci   uint NumberOfSamplesU;
56617a3babSopenharmony_ci
57617a3babSopenharmony_ci   float WidthF;
58617a3babSopenharmony_ci   float HeightF;
59617a3babSopenharmony_ci   float ElementsF;
60617a3babSopenharmony_ci   float DepthF;
61617a3babSopenharmony_ci   float NumberOfLevelsF;
62617a3babSopenharmony_ci   float NumberOfSamplesF;
63617a3babSopenharmony_ci
64617a3babSopenharmony_ci   // 1D, float tx, uint params
65617a3babSopenharmony_ci   g_tTex1df4 . GetDimensions(WidthU);
66617a3babSopenharmony_ci   g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsU);
67617a3babSopenharmony_ci
68617a3babSopenharmony_ci   // 1D, int, uint params
69617a3babSopenharmony_ci   g_tTex1di4 . GetDimensions(WidthU);
70617a3babSopenharmony_ci   g_tTex1di4 . GetDimensions(6, WidthU, NumberOfLevelsU);
71617a3babSopenharmony_ci
72617a3babSopenharmony_ci   // 1D, uint, uint params
73617a3babSopenharmony_ci   g_tTex1du4 . GetDimensions(WidthU);
74617a3babSopenharmony_ci   g_tTex1du4 . GetDimensions(6, WidthU, NumberOfLevelsU);
75617a3babSopenharmony_ci
76617a3babSopenharmony_ci   // 1DArray, float tx, uint params
77617a3babSopenharmony_ci   g_tTex1df4a . GetDimensions(WidthU, ElementsU);
78617a3babSopenharmony_ci   g_tTex1df4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU);
79617a3babSopenharmony_ci
80617a3babSopenharmony_ci   // 1DArray, int, uint params
81617a3babSopenharmony_ci   g_tTex1di4a . GetDimensions(WidthU, ElementsU);
82617a3babSopenharmony_ci   g_tTex1di4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU);
83617a3babSopenharmony_ci
84617a3babSopenharmony_ci   // 1DArray, uint, uint params
85617a3babSopenharmony_ci   g_tTex1du4a . GetDimensions(WidthU, ElementsU);
86617a3babSopenharmony_ci   g_tTex1du4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU);
87617a3babSopenharmony_ci
88617a3babSopenharmony_ci   // 2D, float tx, uint params
89617a3babSopenharmony_ci   g_tTex2df4 . GetDimensions(WidthU, HeightU);
90617a3babSopenharmony_ci   g_tTex2df4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU);
91617a3babSopenharmony_ci
92617a3babSopenharmony_ci   // 2D, int, uint params
93617a3babSopenharmony_ci   g_tTex2di4 . GetDimensions(WidthU, HeightU);
94617a3babSopenharmony_ci   g_tTex2di4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU);
95617a3babSopenharmony_ci
96617a3babSopenharmony_ci   // 2D, uint, uint params
97617a3babSopenharmony_ci   g_tTex2du4 . GetDimensions(WidthU, HeightU);
98617a3babSopenharmony_ci   g_tTex2du4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU);
99617a3babSopenharmony_ci
100617a3babSopenharmony_ci   // 2Darray, float tx, uint params
101617a3babSopenharmony_ci   g_tTex2df4a . GetDimensions(WidthU, HeightU, ElementsU);
102617a3babSopenharmony_ci   g_tTex2df4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU);
103617a3babSopenharmony_ci
104617a3babSopenharmony_ci   // 2Darray, int, uint params
105617a3babSopenharmony_ci   g_tTex2di4a . GetDimensions(WidthU, HeightU, ElementsU);
106617a3babSopenharmony_ci   g_tTex2di4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU);
107617a3babSopenharmony_ci
108617a3babSopenharmony_ci   // 2Darray, uint, uint params
109617a3babSopenharmony_ci   g_tTex2du4a . GetDimensions(WidthU, HeightU, ElementsU);
110617a3babSopenharmony_ci   g_tTex2du4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU);
111617a3babSopenharmony_ci
112617a3babSopenharmony_ci   // 3D, float tx, uint params
113617a3babSopenharmony_ci   g_tTex3df4 . GetDimensions(WidthU, HeightU, DepthU);
114617a3babSopenharmony_ci   g_tTex3df4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU);
115617a3babSopenharmony_ci
116617a3babSopenharmony_ci   // 3D, int, uint params
117617a3babSopenharmony_ci   g_tTex3di4 . GetDimensions(WidthU, HeightU, DepthU);
118617a3babSopenharmony_ci   g_tTex3di4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU);
119617a3babSopenharmony_ci
120617a3babSopenharmony_ci   // 3D, uint, uint params
121617a3babSopenharmony_ci   g_tTex3du4 . GetDimensions(WidthU, HeightU, DepthU);
122617a3babSopenharmony_ci   g_tTex3du4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU);
123617a3babSopenharmony_ci
124617a3babSopenharmony_ci   // Cube, float tx, uint params
125617a3babSopenharmony_ci   g_tTexcdf4 . GetDimensions(WidthU, HeightU);
126617a3babSopenharmony_ci   g_tTexcdf4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU);
127617a3babSopenharmony_ci
128617a3babSopenharmony_ci   // Cube, int, uint params
129617a3babSopenharmony_ci   g_tTexcdi4 . GetDimensions(WidthU, HeightU);
130617a3babSopenharmony_ci   g_tTexcdi4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU);
131617a3babSopenharmony_ci
132617a3babSopenharmony_ci   // Cube, uint, uint params
133617a3babSopenharmony_ci   g_tTexcdu4 . GetDimensions(WidthU, HeightU);
134617a3babSopenharmony_ci   g_tTexcdu4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU);
135617a3babSopenharmony_ci
136617a3babSopenharmony_ci   // Cubearray, float tx, uint params
137617a3babSopenharmony_ci   g_tTexcdf4a . GetDimensions(WidthU, HeightU, ElementsU);
138617a3babSopenharmony_ci   g_tTexcdf4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU);
139617a3babSopenharmony_ci
140617a3babSopenharmony_ci   // Cubearray, int, uint params
141617a3babSopenharmony_ci   g_tTexcdi4a . GetDimensions(WidthU, HeightU, ElementsU);
142617a3babSopenharmony_ci   g_tTexcdi4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU);
143617a3babSopenharmony_ci
144617a3babSopenharmony_ci   // Cubearray, uint, uint params
145617a3babSopenharmony_ci   g_tTexcdu4a . GetDimensions(WidthU, HeightU, ElementsU);
146617a3babSopenharmony_ci   g_tTexcdu4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU);
147617a3babSopenharmony_ci
148617a3babSopenharmony_ci   // 2DMS, float tx, uint params
149617a3babSopenharmony_ci   g_tTex2dmsf4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU);
150617a3babSopenharmony_ci
151617a3babSopenharmony_ci   // 2DMS, int tx, uint params
152617a3babSopenharmony_ci   g_tTex2dmsi4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU);
153617a3babSopenharmony_ci
154617a3babSopenharmony_ci   // 2DMS, uint tx, uint params
155617a3babSopenharmony_ci   g_tTex2dmsu4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU);
156617a3babSopenharmony_ci
157617a3babSopenharmony_ci   // 2DMSArray, float tx, uint params
158617a3babSopenharmony_ci   g_tTex2dmsf4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU);
159617a3babSopenharmony_ci
160617a3babSopenharmony_ci   // 2DMSArray, int tx, uint params
161617a3babSopenharmony_ci   g_tTex2dmsi4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU);
162617a3babSopenharmony_ci
163617a3babSopenharmony_ci   // 2DMSArray, uint tx, uint params
164617a3babSopenharmony_ci   g_tTex2dmsu4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU);
165617a3babSopenharmony_ci
166617a3babSopenharmony_ci   // TODO: ***************************************************
167617a3babSopenharmony_ci   // Change this to 1 to enable float overloads when the HLSL
168617a3babSopenharmony_ci   // function overload resolution is fixed.
169617a3babSopenharmony_ci#define OVERLOAD_FIX 0
170617a3babSopenharmony_ci
171617a3babSopenharmony_ci   // TODO: enable when function overload resolution rules are fixed
172617a3babSopenharmony_ci#if OVERLOAD_FIX
173617a3babSopenharmony_ci   // 1D, float tx, float params
174617a3babSopenharmony_ci   g_tTex1df4 . GetDimensions(WidthF);
175617a3babSopenharmony_ci   g_tTex1df4 . GetDimensions(6, WidthF, NumberOfLevelsF);
176617a3babSopenharmony_ci
177617a3babSopenharmony_ci   // 1D, int, float params
178617a3babSopenharmony_ci   g_tTex1di4 . GetDimensions(WidthF);
179617a3babSopenharmony_ci   g_tTex1di4 . GetDimensions(6, WidthF, NumberOfLevelsF);
180617a3babSopenharmony_ci
181617a3babSopenharmony_ci   // 1D, uint, float params
182617a3babSopenharmony_ci   g_tTex1du4 . GetDimensions(WidthF);
183617a3babSopenharmony_ci   g_tTex1du4 . GetDimensions(6, WidthF, NumberOfLevelsF);
184617a3babSopenharmony_ci
185617a3babSopenharmony_ci   // 1DArray, float tx, float params
186617a3babSopenharmony_ci   g_tTex1df4a . GetDimensions(WidthF, ElementsF);
187617a3babSopenharmony_ci   g_tTex1df4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF);
188617a3babSopenharmony_ci
189617a3babSopenharmony_ci   // 1DArray, int, float params
190617a3babSopenharmony_ci   g_tTex1di4a . GetDimensions(WidthF, ElementsF);
191617a3babSopenharmony_ci   g_tTex1di4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF);
192617a3babSopenharmony_ci
193617a3babSopenharmony_ci   // 1DArray, uint, float params
194617a3babSopenharmony_ci   g_tTex1du4a . GetDimensions(WidthF, ElementsF);
195617a3babSopenharmony_ci   g_tTex1du4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF);
196617a3babSopenharmony_ci
197617a3babSopenharmony_ci   // 2D, float tx, float params
198617a3babSopenharmony_ci   g_tTex2df4 . GetDimensions(WidthF, HeightF);
199617a3babSopenharmony_ci   g_tTex2df4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF);
200617a3babSopenharmony_ci
201617a3babSopenharmony_ci   // 2D, int, float params
202617a3babSopenharmony_ci   g_tTex2di4 . GetDimensions(WidthF, HeightF);
203617a3babSopenharmony_ci   g_tTex2di4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF);
204617a3babSopenharmony_ci
205617a3babSopenharmony_ci   // 2D, uint, float params
206617a3babSopenharmony_ci   g_tTex2du4 . GetDimensions(WidthF, HeightF);
207617a3babSopenharmony_ci   g_tTex2du4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF);
208617a3babSopenharmony_ci
209617a3babSopenharmony_ci   // 2Darray, float tx, float params
210617a3babSopenharmony_ci   g_tTex2df4a . GetDimensions(WidthF, HeightF, ElementsF);
211617a3babSopenharmony_ci   g_tTex2df4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF);
212617a3babSopenharmony_ci
213617a3babSopenharmony_ci   // 2Darray, int, float params
214617a3babSopenharmony_ci   g_tTex2di4a . GetDimensions(WidthF, HeightF, ElementsF);
215617a3babSopenharmony_ci   g_tTex2di4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF);
216617a3babSopenharmony_ci
217617a3babSopenharmony_ci   // 2Darray, uint, float params
218617a3babSopenharmony_ci   g_tTex2du4a . GetDimensions(WidthF, HeightF, ElementsF);
219617a3babSopenharmony_ci   g_tTex2du4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF);
220617a3babSopenharmony_ci
221617a3babSopenharmony_ci   // 3D, float tx, float params
222617a3babSopenharmony_ci   g_tTex3df4 . GetDimensions(WidthF, HeightF, DepthF);
223617a3babSopenharmony_ci   g_tTex3df4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF);
224617a3babSopenharmony_ci
225617a3babSopenharmony_ci   // 3D, int, float params
226617a3babSopenharmony_ci   g_tTex3di4 . GetDimensions(WidthF, HeightF, DepthF);
227617a3babSopenharmony_ci   g_tTex3di4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF);
228617a3babSopenharmony_ci
229617a3babSopenharmony_ci   // 3D, uint, float params
230617a3babSopenharmony_ci   g_tTex3du4 . GetDimensions(WidthF, HeightF, DepthF);
231617a3babSopenharmony_ci   g_tTex3du4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF);
232617a3babSopenharmony_ci
233617a3babSopenharmony_ci   // Cube, float tx, float params
234617a3babSopenharmony_ci   g_tTexcdf4 . GetDimensions(WidthF, HeightF);
235617a3babSopenharmony_ci   g_tTexcdf4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF);
236617a3babSopenharmony_ci
237617a3babSopenharmony_ci   // Cube, int, float params
238617a3babSopenharmony_ci   g_tTexcdi4 . GetDimensions(WidthF, HeightF);
239617a3babSopenharmony_ci   g_tTexcdi4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF);
240617a3babSopenharmony_ci
241617a3babSopenharmony_ci   // Cube, uint, float params
242617a3babSopenharmony_ci   g_tTexcdu4 . GetDimensions(WidthF, HeightF);
243617a3babSopenharmony_ci   g_tTexcdu4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF);
244617a3babSopenharmony_ci
245617a3babSopenharmony_ci   // Cubearray, float tx, float params
246617a3babSopenharmony_ci   g_tTexcdf4a . GetDimensions(WidthF, HeightF, ElementsF);
247617a3babSopenharmony_ci   g_tTexcdf4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF);
248617a3babSopenharmony_ci
249617a3babSopenharmony_ci   // Cubearray, int, float params
250617a3babSopenharmony_ci   g_tTexcdi4a . GetDimensions(WidthF, HeightF, ElementsF);
251617a3babSopenharmony_ci   g_tTexcdi4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF);
252617a3babSopenharmony_ci
253617a3babSopenharmony_ci   // Cubearray, uint, float params
254617a3babSopenharmony_ci   g_tTexcdu4a . GetDimensions(WidthF, HeightF, ElementsF);
255617a3babSopenharmony_ci   g_tTexcdu4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF);
256617a3babSopenharmony_ci
257617a3babSopenharmony_ci   // 2DMS, float tx, uint params
258617a3babSopenharmony_ci   g_tTex2dmsf4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF);
259617a3babSopenharmony_ci
260617a3babSopenharmony_ci   // 2DMS, int tx, uint params
261617a3babSopenharmony_ci   g_tTex2dmsi4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF);
262617a3babSopenharmony_ci
263617a3babSopenharmony_ci   // 2DMS, uint tx, uint params
264617a3babSopenharmony_ci   g_tTex2dmsu4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF);
265617a3babSopenharmony_ci
266617a3babSopenharmony_ci   // 2DMSArray, float tx, uint params
267617a3babSopenharmony_ci   g_tTex2dmsf4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF);
268617a3babSopenharmony_ci
269617a3babSopenharmony_ci   // 2DMSArray, int tx, uint params
270617a3babSopenharmony_ci   g_tTex2dmsi4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF);
271617a3babSopenharmony_ci
272617a3babSopenharmony_ci   // 2DMSArray, uint tx, uint params
273617a3babSopenharmony_ci   g_tTex2dmsu4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF);
274617a3babSopenharmony_ci#endif // OVERLOAD_FIX
275617a3babSopenharmony_ci
276617a3babSopenharmony_ci   psout.Color = 1.0;
277617a3babSopenharmony_ci   psout.Depth = 1.0;
278617a3babSopenharmony_ci
279617a3babSopenharmony_ci   return psout;
280617a3babSopenharmony_ci}
281