summaryrefslogtreecommitdiff
path: root/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/TextMesh Pro/Shaders/TMP_Sprite.shader')
-rw-r--r--Assets/TextMesh Pro/Shaders/TMP_Sprite.shader131
1 files changed, 131 insertions, 0 deletions
diff --git a/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader b/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader
new file mode 100644
index 0000000..4012a08
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader
@@ -0,0 +1,131 @@
+Shader "TextMeshPro/Sprite"
+{
+ Properties
+ {
+ _MainTex ("Sprite Texture", 2D) = "white" {}
+ _Color ("Tint", Color) = (1,1,1,1)
+
+ _StencilComp ("Stencil Comparison", Float) = 8
+ _Stencil ("Stencil ID", Float) = 0
+ _StencilOp ("Stencil Operation", Float) = 0
+ _StencilWriteMask ("Stencil Write Mask", Float) = 255
+ _StencilReadMask ("Stencil Read Mask", Float) = 255
+
+ _CullMode ("Cull Mode", Float) = 0
+ _ColorMask ("Color Mask", Float) = 15
+ _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
+
+ [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue"="Transparent"
+ "IgnoreProjector"="True"
+ "RenderType"="Transparent"
+ "PreviewType"="Plane"
+ "CanUseSpriteAtlas"="True"
+ }
+
+ Stencil
+ {
+ Ref [_Stencil]
+ Comp [_StencilComp]
+ Pass [_StencilOp]
+ ReadMask [_StencilReadMask]
+ WriteMask [_StencilWriteMask]
+ }
+
+ Cull [_CullMode]
+ Lighting Off
+ ZWrite Off
+ ZTest [unity_GUIZTestMode]
+ Blend SrcAlpha OneMinusSrcAlpha
+ ColorMask [_ColorMask]
+
+ Pass
+ {
+ Name "Default"
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 2.0
+
+ #include "UnityCG.cginc"
+ #include "UnityUI.cginc"
+
+ #pragma multi_compile __ UNITY_UI_CLIP_RECT
+ #pragma multi_compile __ UNITY_UI_ALPHACLIP
+
+ struct appdata_t
+ {
+ float4 vertex : POSITION;
+ float4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ UNITY_VERTEX_INPUT_INSTANCE_ID
+ };
+
+ struct v2f
+ {
+ float4 vertex : SV_POSITION;
+ fixed4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ float4 worldPosition : TEXCOORD1;
+ float4 mask : TEXCOORD2;
+ UNITY_VERTEX_OUTPUT_STEREO
+ };
+
+ sampler2D _MainTex;
+ fixed4 _Color;
+ fixed4 _TextureSampleAdd;
+ float4 _ClipRect;
+ float4 _MainTex_ST;
+ float _UIMaskSoftnessX;
+ float _UIMaskSoftnessY;
+ int _UIVertexColorAlwaysGammaSpace;
+
+ v2f vert(appdata_t v)
+ {
+ v2f OUT;
+ UNITY_SETUP_INSTANCE_ID(v);
+ UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
+ float4 vPosition = UnityObjectToClipPos(v.vertex);
+ OUT.worldPosition = v.vertex;
+ OUT.vertex = vPosition;
+
+ float2 pixelSize = vPosition.w;
+ pixelSize /= abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
+
+ float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
+ OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
+ OUT.mask = half4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy)));
+
+ if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+ {
+ v.color.rgb = UIGammaToLinear(v.color.rgb);
+ }
+ OUT.color = v.color * _Color;
+ return OUT;
+ }
+
+ fixed4 frag(v2f IN) : SV_Target
+ {
+ half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
+
+ #if UNITY_UI_CLIP_RECT
+ half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
+ color *= m.x * m.y;
+ #endif
+
+ #ifdef UNITY_UI_ALPHACLIP
+ clip (color.a - 0.001);
+ #endif
+
+ return color;
+ }
+ ENDCG
+ }
+ }
+}