diff options
Diffstat (limited to 'hlsl/pincushion.fx')
-rw-r--r-- | hlsl/pincushion.fx | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/hlsl/pincushion.fx b/hlsl/pincushion.fx deleted file mode 100644 index 7968363c1d6..00000000000 --- a/hlsl/pincushion.fx +++ /dev/null @@ -1,126 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Ryan Holtz -//----------------------------------------------------------------------------- -// Pincushion Post-Processing Effect -//----------------------------------------------------------------------------- - -texture Diffuse; - -sampler DiffuseSampler = sampler_state -{ - Texture = <Diffuse>; - MipFilter = LINEAR; - MinFilter = LINEAR; - MagFilter = LINEAR; - AddressU = CLAMP; - AddressV = CLAMP; - AddressW = CLAMP; -}; - -//----------------------------------------------------------------------------- -// Vertex Definitions -//----------------------------------------------------------------------------- - -struct VS_OUTPUT -{ - float4 Position : POSITION; - float4 Color : COLOR0; - float2 TexCoord : TEXCOORD0; - float2 RedCoord : TEXCOORD2; - float2 GreenCoord : TEXCOORD3; - float2 BlueCoord : TEXCOORD4; -}; - -struct VS_INPUT -{ - float3 Position : POSITION; - float4 Color : COLOR0; - float2 TexCoord : TEXCOORD0; - float2 Unused : TEXCOORD1; -}; - -struct PS_INPUT -{ - float4 Color : COLOR0; - float2 TexCoord : TEXCOORD0; - float2 RedCoord : TEXCOORD2; - float2 GreenCoord : TEXCOORD3; - float2 BlueCoord : TEXCOORD4; -}; - -//----------------------------------------------------------------------------- -// Post-Processing Vertex Shader -//----------------------------------------------------------------------------- - -uniform float TargetWidth; -uniform float TargetHeight; - -uniform float RawWidth; -uniform float RawHeight; - -VS_OUTPUT vs_main(VS_INPUT Input) -{ - VS_OUTPUT Output = (VS_OUTPUT)0; - - float2 invDims = float2(1.0f / RawWidth, 1.0f / RawHeight); - Output.Position = float4(Input.Position.xyz, 1.0f); - Output.Position.x /= TargetWidth; - Output.Position.y /= TargetHeight; - Output.Position.y = 1.0f - Output.Position.y; - Output.Position.x -= 0.5f; - Output.Position.y -= 0.5f; - Output.Position *= float4(2.0f, 2.0f, 1.0f, 1.0f); - Output.Color = Input.Color; - Output.TexCoord = Input.TexCoord; - - Output.TexCoord.x -= 0.25f; - Output.TexCoord.y -= 0.25f; - Output.TexCoord.x -= 0.5f; - Output.TexCoord.y -= 0.5f; - Output.TexCoord.x /= 18.0f * (TargetWidth / RawWidth); - Output.TexCoord.y /= 18.0f * (TargetHeight / RawHeight); - Output.TexCoord.x += 0.5f; - Output.TexCoord.y += 0.5f; - - return Output; -} - -//----------------------------------------------------------------------------- -// Post-Processing Pixel Shader -//----------------------------------------------------------------------------- - -uniform float PI = 3.14159265f; - -uniform float PincushionAmountX = 0.1f; -uniform float PincushionAmountY = 0.1f; - -uniform float2 ActiveArea; - -float4 ps_main(PS_INPUT Input) : COLOR -{ - // -- Screen Pincushion Calculation -- - float2 UnitCoord = Input.TexCoord * ActiveArea * 2.0f - 1.0f; - - float PincushionR2 = pow(length(UnitCoord),2.0f) / pow(length(ActiveArea), 2.0f); - float2 PincushionCurve = UnitCoord * PincushionAmountX * PincushionR2; - float2 BaseCoord = Input.TexCoord + PincushionCurve; - - return tex2D(DiffuseSampler, BaseCoord); -} - -//----------------------------------------------------------------------------- -// Post-Processing Effect -//----------------------------------------------------------------------------- - -technique TestTechnique -{ - pass Pass0 - { - Lighting = FALSE; - - Sampler[0] = <DiffuseSampler>; - - VertexShader = compile vs_2_0 vs_main(); - PixelShader = compile ps_2_0 ps_main(); - } -} |