ProfileAnalyzerShader.shader 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. Shader "Unlit/ProfileAnalyzerShader"
  2. {
  3. Properties
  4. {
  5. _StencilComp ("Stencil Comparison", Float) = 8
  6. _Stencil ("Stencil ID", Float) = 0
  7. _StencilOp ("Stencil Operation", Float) = 0
  8. _StencilWriteMask ("Stencil Write Mask", Float) = 255
  9. _StencilReadMask ("Stencil Read Mask", Float) = 255
  10. _ColorMask ("Color Mask", Float) = 15
  11. [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
  12. _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
  13. }
  14. SubShader
  15. {
  16. Tags
  17. {
  18. "Queue"="Transparent"
  19. "IgnoreProjector"="True"
  20. "RenderType"="Transparent"
  21. "PreviewType"="Plane"
  22. "CanUseSpriteAtlas"="True"
  23. }
  24. Stencil
  25. {
  26. Ref [_Stencil]
  27. Comp [_StencilComp]
  28. Pass [_StencilOp]
  29. ReadMask [_StencilReadMask]
  30. WriteMask [_StencilWriteMask]
  31. }
  32. //Tags { "RenderType"="Transparent" }
  33. LOD 100
  34. //ZWrite Off
  35. //Blend SrcAlpha OneMinusSrcAlpha
  36. Cull Off
  37. Lighting Off
  38. ZWrite Off
  39. ZTest [unity_GUIZTestMode]
  40. Blend SrcAlpha OneMinusSrcAlpha
  41. ColorMask [_ColorMask]
  42. Pass
  43. {
  44. CGPROGRAM
  45. #pragma vertex vert
  46. #pragma fragment frag
  47. #include "UnityCG.cginc"
  48. #include "UnityUI.cginc"
  49. #pragma multi_compile _ UNITY_UI_ALPHACLIP
  50. struct appdata
  51. {
  52. float4 vertex : POSITION;
  53. fixed4 color : COLOR;
  54. };
  55. struct v2f
  56. {
  57. float4 vertex : SV_POSITION;
  58. fixed4 color : COLOR;
  59. float4 worldPosition : TEXCOORD1;
  60. };
  61. bool _UseClipRect;
  62. float4 _ClipRect;
  63. v2f vert (appdata v)
  64. {
  65. v2f o;
  66. o.worldPosition = v.vertex;
  67. o.vertex = UnityObjectToClipPos(v.vertex);
  68. o.color.rgba = v.color;
  69. return o;
  70. }
  71. //fixed4 frag (v2f i) : SV_Target { return i.color; }
  72. fixed4 frag (v2f i) : SV_Target
  73. {
  74. half4 color = i.color;
  75. if (_UseClipRect)
  76. color.a *= UnityGet2DClipping(i.worldPosition.xy, _ClipRect);
  77. #ifdef UNITY_UI_ALPHACLIP
  78. clip (color.a - 0.001);
  79. #endif
  80. return color;
  81. }
  82. ENDCG
  83. }
  84. }
  85. }