SpriteImage.bslinc 891 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. SamplerState gMainTexSamp;
  31. Texture2D gMainTexture;
  32. float4 fsmain(in float4 inPos : SV_Position, float2 uv : TEXCOORD0) : SV_Target
  33. {
  34. float4 color = gMainTexture.Sample(gMainTexSamp, uv);
  35. return color * gTint;
  36. }
  37. };
  38. };