summaryrefslogtreecommitdiffstatshomepage
path: root/hlsl/yiq_encode.fx
diff options
context:
space:
mode:
authorGravatarGravatar Ryan Holtz <rholtz@batcountryentertainment.com>2011-05-22 01:30:55 +0000
committerGravatarGravatar Ryan Holtz <rholtz@batcountryentertainment.com>2011-05-22 01:30:55 +0000
commit99dffc122e45c592bc10731755594e0ccbc0da1e (patch)
treea78a9a63be850ee5faad9ad7096d6e243e4eb4fe /hlsl/yiq_encode.fx
parent690f25a5820d733dca603e5be0a33e03a930f387 (diff)
HLSL: Added adjustable color carrier in YIQ processing mode. [Ryan Holtz, Bat Country Entertainment]
HLSL: Fixed resolution-change crash and likely D3D performance regression with -nohlsl on low-spec cards [Ryan Holtz, Bat Country Entertainment]
Diffstat (limited to 'hlsl/yiq_encode.fx')
-rw-r--r--hlsl/yiq_encode.fx19
1 files changed, 10 insertions, 9 deletions
diff --git a/hlsl/yiq_encode.fx b/hlsl/yiq_encode.fx
index 98c1d3a17fe..e15e7ccb7d7 100644
--- a/hlsl/yiq_encode.fx
+++ b/hlsl/yiq_encode.fx
@@ -91,14 +91,15 @@ uniform float WValue;
uniform float AValue;
uniform float BValue;
+uniform float FscScale;
+
float4 ps_main(PS_INPUT Input) : COLOR
{
float2 InvRatios = float2(1.0f / WidthRatio, 1.0f / HeightRatio);
- float2 Offset = float2(0.5f / RawWidth, 0.5f / RawHeight);
- float3 Texel0 = tex2D(DiffuseSampler, Input.Coord0 - Offset).rgb;
- float3 Texel1 = tex2D(DiffuseSampler, Input.Coord1 - Offset).rgb;
- float3 Texel2 = tex2D(DiffuseSampler, Input.Coord2 - Offset).rgb;
- float3 Texel3 = tex2D(DiffuseSampler, Input.Coord3 - Offset).rgb;
+ float3 Texel0 = tex2D(DiffuseSampler, Input.Coord0 - float2(0.0f, 0.5f / RawHeight)).rgb;
+ float3 Texel1 = tex2D(DiffuseSampler, Input.Coord1 - float2(0.0f, 0.5f / RawHeight)).rgb;
+ float3 Texel2 = tex2D(DiffuseSampler, Input.Coord2 - float2(0.0f, 0.5f / RawHeight)).rgb;
+ float3 Texel3 = tex2D(DiffuseSampler, Input.Coord3 - float2(0.0f, 0.5f / RawHeight)).rgb;
float2 Scaler = float2(RawWidth, RawHeight);
float2 Coord0 = Input.Coord0.xy * Scaler;
@@ -107,10 +108,10 @@ float4 ps_main(PS_INPUT Input) : COLOR
float2 Coord3 = Input.Coord3.xy * Scaler;
float W = WValue;
- float T0 = Coord0.x + AValue * Coord0.y + BValue;// - 1.1f;
- float T1 = Coord1.x + AValue * Coord1.y + BValue;// - 1.1f;
- float T2 = Coord2.x + AValue * Coord2.y + BValue;// - 1.1f;
- float T3 = Coord3.x + AValue * Coord3.y + BValue;// - 1.1f;
+ float T0 = Coord0.x + AValue * Coord0.y + BValue;
+ float T1 = Coord1.x + AValue * Coord1.y + BValue;
+ float T2 = Coord2.x + AValue * Coord2.y + BValue;
+ float T3 = Coord3.x + AValue * Coord3.y + BValue;
float Y0 = dot(Texel0, float3(0.299f, 0.587f, 0.114f));
float I0 = dot(Texel0, float3(0.595716f, -0.274453f, -0.321263f));