hlsl.buffer.frag 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. cbuffer buf1 {
  2. float4 v1;
  3. }; // extraneous ;
  4. tbuffer buf2 {
  5. float4 v2;
  6. }; // extraneous ;
  7. cbuffer cbufName {
  8. float4 v3 : packoffset(c0);
  9. int i3 : packoffset(c1.y);
  10. }
  11. tbuffer tbufName : register(t8) {
  12. float4 v4 : packoffset(c1);
  13. int i4 : packoffset(c3);
  14. float f1 : packoffset(c3.w);
  15. float f3 : packoffset(c4.x);
  16. float f4 : packoffset(c4.y);
  17. float f5 : packoffset(c4.z);
  18. float f6 : packoffset(c);
  19. float f7 : packoffset(c8);
  20. float3x4 m1 : packoffset(c7);
  21. row_major float3x4 m2 : packoffset(c11);
  22. column_major float3x4 m3 : packoffset(c15);
  23. float3x4 m4 : packoffset(c19);
  24. }
  25. float foo() // float looks like identifier, but can't be part of tbuffer
  26. {
  27. return 1.0;
  28. }
  29. struct id {
  30. float4 a;
  31. };
  32. cbuffer cbufName2 {
  33. float4 v24;
  34. }
  35. id PixelShaderFunction(float4 input : SV_POSITION) : SV_TARGET0 // id looks like id for cbuffer name, but can't be
  36. {
  37. id ret;
  38. ret.a = v24 + (input + v1 + v2 + v3 + v4) * foo();
  39. return ret;
  40. }