78 lines
1.5 KiB
HLSL
78 lines
1.5 KiB
HLSL
#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 && TMP_SPRITE
|
|
float2 uvMask : TEXCOORD2;
|
|
#elif 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
|