64 lines
1.9 KiB
GLSL
64 lines
1.9 KiB
GLSL
Shader "UI/RoundedCorners/RoundedCorners" {
|
|
Properties {
|
|
[HideInInspector] _MainTex ("Texture", 2D) = "white" {}
|
|
|
|
// --- Mask support ---
|
|
[HideInInspector] _StencilComp ("Stencil Comparison", Float) = 8
|
|
[HideInInspector] _Stencil ("Stencil ID", Float) = 0
|
|
[HideInInspector] _StencilOp ("Stencil Operation", Float) = 0
|
|
[HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255
|
|
[HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255
|
|
[HideInInspector] _ColorMask ("Color Mask", Float) = 15
|
|
[HideInInspector] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
|
|
|
|
// Definition in Properties section is required to Mask works properly
|
|
_WidthHeightRadius ("WidthHeightRadius", Vector) = (0,0,0,0)
|
|
// ---
|
|
}
|
|
|
|
SubShader {
|
|
Tags {
|
|
"RenderType"="Transparent"
|
|
"Queue"="Transparent"
|
|
}
|
|
|
|
// --- Mask support ---
|
|
Stencil {
|
|
Ref [_Stencil]
|
|
Comp [_StencilComp]
|
|
Pass [_StencilOp]
|
|
ReadMask [_StencilReadMask]
|
|
WriteMask [_StencilWriteMask]
|
|
}
|
|
Cull Off
|
|
Lighting Off
|
|
ZTest [unity_GUIZTestMode]
|
|
ColorMask [_ColorMask]
|
|
// ---
|
|
|
|
Blend SrcAlpha OneMinusSrcAlpha
|
|
ZWrite Off
|
|
|
|
Pass {
|
|
CGPROGRAM
|
|
|
|
#include "UnityCG.cginc"
|
|
#include "SDFUtils.cginc"
|
|
#include "ShaderSetup.cginc"
|
|
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
|
|
float4 _WidthHeightRadius;
|
|
sampler2D _MainTex;
|
|
|
|
fixed4 frag (v2f i) : SV_Target {
|
|
float alpha = CalcAlpha(i.uv, _WidthHeightRadius.xy, _WidthHeightRadius.z);
|
|
return mixAlpha(tex2D(_MainTex, i.uv), i.color, alpha);
|
|
}
|
|
|
|
ENDCG
|
|
}
|
|
}
|
|
}
|