SpriteImage.bslinc 915 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. mixin SpriteImage
  2. {
  3. depth
  4. {
  5. read = false;
  6. write = false;
  7. };
  8. code
  9. {
  10. cbuffer GUIParams
  11. {
  12. float4x4 gWorldTransform;
  13. float gInvViewportWidth;
  14. float gInvViewportHeight;
  15. float gViewportYFlip;
  16. float4 gTint;
  17. }
  18. void vsmain(
  19. in float3 inPos : POSITION,
  20. in float2 uv : TEXCOORD0,
  21. out float4 oPosition : SV_Position,
  22. out float2 oUv : TEXCOORD0)
  23. {
  24. float4 tfrmdPos = mul(gWorldTransform, float4(inPos.xy, 0, 1));
  25. float tfrmdX = -1.0f + (tfrmdPos.x * gInvViewportWidth);
  26. float tfrmdY = (1.0f - (tfrmdPos.y * gInvViewportHeight)) * gViewportYFlip;
  27. oPosition = float4(tfrmdX, tfrmdY, 0, 1);
  28. oUv = uv;
  29. }
  30. [alias(gMainTexture)]
  31. SamplerState gMainTexSamp;
  32. Texture2D gMainTexture;
  33. float4 fsmain(in float4 inPos : SV_Position, float2 uv : TEXCOORD0) : SV_Target
  34. {
  35. float4 color = gMainTexture.Sample(gMainTexSamp, uv);
  36. return color * gTint;
  37. }
  38. };
  39. };