powerfun-unity/Assets/Resources/Circle/RoundedCorners.shader

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
}
}
}