SamplerState g_samp; Texture1D g_tex; struct tex_t { SamplerState samp; Texture1D tex; int nonopaque_thing; }; struct tex_with_arrays_t { SamplerState samp[2]; Texture1D tex[2]; int nonopaque_thing; }; uniform tex_t g_texdata; uniform tex_t g_texdata_array[3]; uniform tex_with_arrays_t g_texdata_array2[3]; struct PS_OUTPUT { float4 color : SV_Target0; }; void main(out PS_OUTPUT ps_output) { ps_output.color = g_texdata.tex.Sample(g_texdata.samp, 0.5) + g_texdata_array[1].tex.Sample(g_texdata_array[1].samp, 0.4) + g_texdata_array2[1].tex[0].Sample(g_texdata_array2[1].samp[0], 0.3); }