Home | History | Annotate | Download | only in Test
      1 
      2 // uniform Texture1D g_tex3[3][2];  // TODO: legal in HLSL, but we don't handle it yet.
      3 
      4 uniform Texture1D g_tex[3];
      5 uniform Texture1D g_tex_explicit[3] : register(t1);
      6 
      7 SamplerState g_samp[3];
      8 SamplerState g_samp_explicit[3] : register(s5);
      9 
     10 uniform float3x3 g_mats[4];
     11 uniform float3x3 g_mats_explicit[4] : register(b10);
     12 uniform float g_floats[4];
     13 
     14 // uniform float g_floats[4] = { 10, 11, 12, 13 };  // TODO: ... add when initializer lists can be flattened.
     15 
     16 float4 TestFn1()
     17 {
     18     return g_tex[1].Sample(g_samp[1], 0.2);
     19 }
     20 
     21 float4 TestFn2(Texture1D l_tex[3], SamplerState l_samp[3])
     22 {
     23     return l_tex[2].Sample(l_samp[2], 0.2);
     24 }
     25 
     26 static int not_flattened_a[5] = { 1, 2, 3, 4, 5 };
     27 
     28 struct PS_OUTPUT { float4 color : SV_Target0; };
     29 
     30 void main(out PS_OUTPUT ps_output)
     31 {
     32     // test flattening for local assignment initialization
     33     SamplerState local_sampler_array[3] = g_samp;
     34     Texture1D local_texture_array[3]    = g_tex;
     35     float local_float_array[4]          = g_floats;
     36 
     37     ps_output.color = TestFn1() + TestFn2(g_tex, g_samp);
     38 }
     39