UIEffectSprite.cginc 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef UI_EFFECT_SPRITE_INCLUDED
  2. #define UI_EFFECT_SPRITE_INCLUDED
  3. fixed4 _Color;
  4. fixed4 _TextureSampleAdd;
  5. float4 _ClipRect;
  6. sampler2D _MainTex;
  7. float4 _MainTex_TexelSize;
  8. struct appdata_t
  9. {
  10. float4 vertex : POSITION;
  11. float4 color : COLOR;
  12. float2 texcoord : TEXCOORD0;
  13. #if EX
  14. float2 uvMask : TEXCOORD1;
  15. #endif
  16. UNITY_VERTEX_INPUT_INSTANCE_ID
  17. };
  18. struct v2f
  19. {
  20. float4 vertex : SV_POSITION;
  21. fixed4 color : COLOR;
  22. half2 texcoord : TEXCOORD0;
  23. float4 worldPosition : TEXCOORD1;
  24. #if UI_DISSOLVE || UI_TRANSITION
  25. half3 eParam : TEXCOORD2;
  26. #elif UI_SHINY
  27. half2 eParam : TEXCOORD2;
  28. #else
  29. half eParam : TEXCOORD2;
  30. #endif
  31. #if EX
  32. half4 uvMask : TEXCOORD3;
  33. #endif
  34. UNITY_VERTEX_OUTPUT_STEREO
  35. };
  36. v2f vert(appdata_t IN)
  37. {
  38. v2f OUT;
  39. UNITY_SETUP_INSTANCE_ID(IN);
  40. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
  41. OUT.worldPosition = IN.vertex;
  42. OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
  43. #if UI_EFFECT
  44. OUT.texcoord = UnpackToVec2(IN.texcoord.x) * 2 - 0.5;
  45. #else
  46. OUT.texcoord = UnpackToVec2(IN.texcoord.x);
  47. #endif
  48. #ifdef UNITY_HALF_TEXEL_OFFSET
  49. OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1);
  50. #endif
  51. OUT.color = IN.color * _Color;
  52. #if UI_DISSOLVE || UI_TRANSITION
  53. OUT.eParam = UnpackToVec3(IN.texcoord.y);
  54. #elif UI_SHINY
  55. OUT.eParam = UnpackToVec2(IN.texcoord.y);
  56. #else
  57. OUT.eParam = IN.texcoord.y;
  58. #endif
  59. #if EX
  60. OUT.uvMask = half4(UnpackToVec2(IN.uvMask.x), UnpackToVec2(IN.uvMask.y));
  61. #endif
  62. return OUT;
  63. }
  64. #endif // UI_EFFECT_SPRITE_INCLUDED