1uniform half4 colorGreen, colorRed; 2 3struct InnerLUT { 4 float3 values; 5}; 6struct OuterLUT { 7 InnerLUT inner[3]; 8}; 9struct Root { 10 int valueAtRoot; 11 OuterLUT outer[3]; 12}; 13 14half4 main(float2 coords) { 15 Root data; 16 data.valueAtRoot = 1234; 17 float3 values = float3(0); 18 19 for (int i=0; i<3; ++i) { 20 for (int j=0; j<3; ++j) { 21 values += float3(1, 10, 100); 22 23 for (int k=0; k<3; ++k) { 24 data.outer[i].inner[j].values[k] = values[k]; 25 } 26 } 27 } 28 29 bool ok = data.valueAtRoot == 1234 30 && data.outer[0].inner[0].values == float3(1, 10, 100) 31 && data.outer[0].inner[1].values == float3(2, 20, 200) 32 && data.outer[0].inner[2].values == float3(3, 30, 300) 33 && data.outer[1].inner[0].values == float3(4, 40, 400) 34 && data.outer[1].inner[1].values == float3(5, 50, 500) 35 && data.outer[1].inner[2].values == float3(6, 60, 600) 36 && data.outer[2].inner[0].values == float3(7, 70, 700) 37 && data.outer[2].inner[1].values == float3(8, 80, 800) 38 && data.outer[2].inner[2].values == float3(9, 90, 900); 39 40 return ok ? colorGreen : colorRed; 41} 42