100 lines
2.4 KiB
Plaintext
100 lines
2.4 KiB
Plaintext
Shader "Hidden/Klak/Spout/Blit"
|
|
{
|
|
Properties
|
|
{
|
|
_MainTex("", 2D) = "white" {}
|
|
}
|
|
|
|
CGINCLUDE
|
|
|
|
#include "UnityCG.cginc"
|
|
|
|
sampler2D _MainTex;
|
|
|
|
// Note: The effect of the v-flip option is reversed here.
|
|
// We have to do v-flip actually on no-v-flip passes.
|
|
|
|
void Vertex(float4 position : POSITION,
|
|
float2 texCoord : TEXCOORD0,
|
|
out float4 outPosition : SV_Position,
|
|
out float2 outTexCoord : TEXCOORD0)
|
|
{
|
|
outPosition = UnityObjectToClipPos(position);
|
|
outTexCoord = float2(texCoord.x, 1 - texCoord.y);
|
|
}
|
|
|
|
void VertexVFlip(float4 position : POSITION,
|
|
float2 texCoord : TEXCOORD0,
|
|
out float4 outPosition : SV_Position,
|
|
out float2 outTexCoord : TEXCOORD0)
|
|
{
|
|
outPosition = UnityObjectToClipPos(position);
|
|
outTexCoord = texCoord;
|
|
}
|
|
|
|
float4 BlitSimple(float4 position : SV_Position,
|
|
float2 texCoord : TEXCOORD0) : SV_Target
|
|
{
|
|
return tex2D(_MainTex, texCoord);
|
|
}
|
|
|
|
float4 BlitClearAlpha(float4 position : SV_Position,
|
|
float2 texCoord : TEXCOORD0) : SV_Target
|
|
{
|
|
return float4(tex2D(_MainTex, texCoord).rgb, 1);
|
|
}
|
|
|
|
float4 BlitFromSrgb(float4 position : SV_Position,
|
|
float2 texCoord : TEXCOORD0) : SV_Target
|
|
{
|
|
float4 c = tex2D(_MainTex, texCoord);
|
|
#ifndef UNITY_COLORSPACE_GAMMA
|
|
c.rgb = GammaToLinearSpace(c.rgb);
|
|
#endif
|
|
return c;
|
|
}
|
|
|
|
ENDCG
|
|
|
|
SubShader
|
|
{
|
|
Cull Off ZWrite Off ZTest Always
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex Vertex
|
|
#pragma fragment BlitSimple
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex Vertex
|
|
#pragma fragment BlitClearAlpha
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertexVFlip
|
|
#pragma fragment BlitSimple
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertexVFlip
|
|
#pragma fragment BlitClearAlpha
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex Vertex
|
|
#pragma fragment BlitFromSrgb
|
|
#pragma multi_compile _ UNITY_COLORSPACE_GAMMA
|
|
ENDCG
|
|
}
|
|
}
|
|
}
|