hlsl.structbuffer.frag 451 B

123456789101112131415161718192021222324
  1. struct sb_t
  2. {
  3. float3 color;
  4. bool test;
  5. bool test2;
  6. }; // stride = 20
  7. StructuredBuffer<sb_t> sbuf : register(c10);
  8. StructuredBuffer<float> sbuf2;
  9. float4 main(uint pos : FOO) : SV_Target0
  10. {
  11. sb_t mydata = sbuf.Load(pos);
  12. uint size;
  13. uint stride;
  14. sbuf.GetDimensions(size, stride);
  15. if (sbuf[pos].test)
  16. return float4(sbuf[pos].color + sbuf2[pos], 0);
  17. else
  18. return mydata.color.x + size + stride;
  19. }