diff options
author | chai <chaifix@163.com> | 2021-04-07 21:33:14 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-04-07 21:33:14 +0800 |
commit | c47b92e92cf33ae8bf2f38929e137294397e4735 (patch) | |
tree | c67ae3419eaf15e84f1679186e107f598de33978 /Assets/Resources/UIEffectSprite.cginc |
Diffstat (limited to 'Assets/Resources/UIEffectSprite.cginc')
-rw-r--r-- | Assets/Resources/UIEffectSprite.cginc | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Assets/Resources/UIEffectSprite.cginc b/Assets/Resources/UIEffectSprite.cginc new file mode 100644 index 0000000..77a69e3 --- /dev/null +++ b/Assets/Resources/UIEffectSprite.cginc @@ -0,0 +1,75 @@ +#ifndef UI_EFFECT_SPRITE_INCLUDED +#define UI_EFFECT_SPRITE_INCLUDED + +fixed4 _Color; +fixed4 _TextureSampleAdd; +float4 _ClipRect; +sampler2D _MainTex; +float4 _MainTex_TexelSize; + +struct appdata_t +{ + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; +#if EX + float2 uvMask : TEXCOORD1; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID +}; + +struct v2f +{ + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + half2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; +#if UI_DISSOLVE || UI_TRANSITION + half3 eParam : TEXCOORD2; +#elif UI_SHINY + half2 eParam : TEXCOORD2; +#else + half eParam : TEXCOORD2; +#endif +#if EX + half4 uvMask : TEXCOORD3; +#endif + UNITY_VERTEX_OUTPUT_STEREO +}; + +v2f vert(appdata_t IN) +{ + v2f OUT; + UNITY_SETUP_INSTANCE_ID(IN); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + OUT.worldPosition = IN.vertex; + OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + + #if UI_EFFECT + OUT.texcoord = UnpackToVec2(IN.texcoord.x) * 2 - 0.5; + #else + OUT.texcoord = UnpackToVec2(IN.texcoord.x); + #endif + + #ifdef UNITY_HALF_TEXEL_OFFSET + OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1); + #endif + + OUT.color = IN.color * _Color; + + #if UI_DISSOLVE || UI_TRANSITION + OUT.eParam = UnpackToVec3(IN.texcoord.y); + #elif UI_SHINY + OUT.eParam = UnpackToVec2(IN.texcoord.y); + #else + OUT.eParam = IN.texcoord.y; + #endif + + #if EX + OUT.uvMask = half4(UnpackToVec2(IN.uvMask.x), UnpackToVec2(IN.uvMask.y)); + #endif + + return OUT; +} + +#endif // UI_EFFECT_SPRITE_INCLUDED |