struct S0 { int x; int y; SamplerState ss; }; struct S1 { float b; SamplerState samplerState; S0 s0; int a; }; struct S2 { int a1; int a2; int a3; int a4; int a5; S1 resources; }; SamplerState samp; Texture2D tex; float4 main(float4 vpos : VPOS) : COLOR0 { S1 s1; S2 s2; s1.s0.ss = samp; s2.resources = s1; return tex.Sample(s2.resources.s0.ss, float2(0.5)); }