mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
fix bilinear shader
This commit is contained in:
parent
f564fa840e
commit
ceb3a88149
325
inc/d3d9shader.h
325
inc/d3d9shader.h
@ -134,10 +134,7 @@ const BYTE D3D9_PALETTE_SHADER[] =
|
||||
mov r0.y, c1.y
|
||||
rcp r1.x, c0.x
|
||||
rcp r1.y, c0.y
|
||||
mul r0.zw, t0.wzyx, c0.wzyx
|
||||
frc r0.zw, r0
|
||||
add r2.xy, -r0.wzyx, c1.x
|
||||
mad r2.xy, r2, r1, t0
|
||||
mad r2.xy, r1, c1.x, t0
|
||||
add r3.xy, r1, r2
|
||||
mov r1.z, c1.y
|
||||
add r4.x, r1.z, r2.x
|
||||
@ -145,26 +142,28 @@ const BYTE D3D9_PALETTE_SHADER[] =
|
||||
add r1.x, r1.x, r2.x
|
||||
add r1.y, r1.z, r2.y
|
||||
texld r3, r3, s0
|
||||
texld r2, r2, s0
|
||||
texld r1, r1, s0
|
||||
texld r4, r4, s0
|
||||
texld r5, r2, s0
|
||||
mad r0.x, r3.x, c1.z, c1.w
|
||||
mov r3.y, c1.y
|
||||
mad r2.x, r2.x, c1.z, c1.w
|
||||
mad r1.x, r1.x, c1.z, c1.w
|
||||
mad r3.x, r4.x, c1.z, c1.w
|
||||
mov r3.y, c1.y
|
||||
mad r4.x, r5.x, c1.z, c1.w
|
||||
mov r4.y, c1.y
|
||||
mov r1.y, c1.y
|
||||
mov r2.y, c1.y
|
||||
texld r4, r0, s1
|
||||
texld r0, r0, s1
|
||||
texld r3, r3, s1
|
||||
texld r4, r4, s1
|
||||
texld r1, r1, s1
|
||||
texld r2, r2, s1
|
||||
lrp r5, r0.w, r4, r3
|
||||
lrp r3, r0.w, r1, r2
|
||||
lrp r1, r0.z, r5, r3
|
||||
mul r2.xy, r2, c0
|
||||
frc r2.xy, r2
|
||||
lrp r5, r2.x, r0, r3
|
||||
lrp r0, r2.x, r1, r4
|
||||
lrp r1, r2.y, r5, r0
|
||||
mov oC0, r1
|
||||
|
||||
// approximately 32 instruction slots used (8 texture, 24 arithmetic)
|
||||
// approximately 31 instruction slots used (8 texture, 23 arithmetic)
|
||||
|
||||
// fxc.exe /Tps_2_0 shader.hlsl /Fhshader.h
|
||||
/*
|
||||
@ -176,24 +175,23 @@ float4 TextureSize : register(c0);
|
||||
float4 bilinear(float2 coord)
|
||||
{
|
||||
float2 size = 1.0 / TextureSize.xy;
|
||||
float2 f = frac(coord * TextureSize.xy);
|
||||
|
||||
coord += (.5 - f) * size;
|
||||
|
||||
float tli = tex2D(SurfaceTex, coord).r;
|
||||
float tri = tex2D(SurfaceTex, coord + float2(size.x, 0.0) ).r;
|
||||
float bli = tex2D(SurfaceTex, coord + float2(0.0, size.y)).r;
|
||||
float bri = tex2D(SurfaceTex, coord + float2(size.x, size.y)).r;
|
||||
|
||||
float2 pos = coord + size * 0.5;
|
||||
float2 f = frac(pos / size);
|
||||
|
||||
float tli = tex2D(SurfaceTex, pos).r;
|
||||
float tri = tex2D(SurfaceTex, pos + float2(size.x, 0.0) ).r;
|
||||
float bli = tex2D(SurfaceTex, pos + float2(0.0, size.y)).r;
|
||||
float bri = tex2D(SurfaceTex, pos + float2(size.x, size.y)).r;
|
||||
|
||||
float4 tl = tex2D(PaletteTex, float2(tli * (255./256) + (0.5/256), 0));
|
||||
float4 tr = tex2D(PaletteTex, float2(tri * (255./256) + (0.5/256), 0));
|
||||
float4 bl = tex2D(PaletteTex, float2(bli * (255./256) + (0.5/256), 0));
|
||||
float4 br = tex2D(PaletteTex, float2(bri * (255./256) + (0.5/256), 0));
|
||||
|
||||
float4 top = lerp(tl, tr, f.x);
|
||||
float4 bot = lerp(bl, br, f.x);
|
||||
|
||||
return lerp(top, bot, f.y);
|
||||
float4 t = lerp(tl, tr, f.x);
|
||||
float4 b = lerp(bl, br, f.x);
|
||||
|
||||
return lerp(t, b, f.y);
|
||||
}
|
||||
|
||||
float4 main(float2 texCoords : TEXCOORD) : COLOR
|
||||
@ -204,142 +202,143 @@ float4 main(float2 texCoords : TEXCOORD) : COLOR
|
||||
#endif
|
||||
|
||||
const BYTE D3D9_PALETTE_SHADER_BILINEAR[] =
|
||||
{
|
||||
0, 2, 255, 255, 254, 255,
|
||||
56, 0, 67, 84, 65, 66,
|
||||
28, 0, 0, 0, 179, 0,
|
||||
0, 0, 0, 2, 255, 255,
|
||||
3, 0, 0, 0, 28, 0,
|
||||
0, 0, 0, 1, 0, 0,
|
||||
172, 0, 0, 0, 88, 0,
|
||||
0, 0, 3, 0, 1, 0,
|
||||
1, 0, 0, 0, 100, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
116, 0, 0, 0, 3, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
128, 0, 0, 0, 0, 0,
|
||||
0, 0, 144, 0, 0, 0,
|
||||
2, 0, 0, 0, 1, 0,
|
||||
2, 0, 156, 0, 0, 0,
|
||||
0, 0, 0, 0, 80, 97,
|
||||
108, 101, 116, 116, 101, 84,
|
||||
101, 120, 0, 171, 4, 0,
|
||||
12, 0, 1, 0, 1, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 83, 117, 114, 102,
|
||||
97, 99, 101, 84, 101, 120,
|
||||
0, 171, 4, 0, 12, 0,
|
||||
1, 0, 1, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
84, 101, 120, 116, 117, 114,
|
||||
101, 83, 105, 122, 101, 0,
|
||||
1, 0, 3, 0, 1, 0,
|
||||
4, 0, 1, 0, 0, 0,
|
||||
0, 0, 0, 0, 112, 115,
|
||||
95, 50, 95, 48, 0, 77,
|
||||
105, 99, 114, 111, 115, 111,
|
||||
102, 116, 32, 40, 82, 41,
|
||||
32, 72, 76, 83, 76, 32,
|
||||
83, 104, 97, 100, 101, 114,
|
||||
32, 67, 111, 109, 112, 105,
|
||||
108, 101, 114, 32, 49, 48,
|
||||
46, 49, 0, 171, 81, 0,
|
||||
0, 5, 1, 0, 15, 160,
|
||||
0, 0, 0, 63, 0, 0,
|
||||
0, 0, 0, 0, 127, 63,
|
||||
0, 0, 0, 59, 31, 0,
|
||||
0, 2, 0, 0, 0, 128,
|
||||
0, 0, 3, 176, 31, 0,
|
||||
0, 2, 0, 0, 0, 144,
|
||||
0, 8, 15, 160, 31, 0,
|
||||
0, 2, 0, 0, 0, 144,
|
||||
1, 8, 15, 160, 1, 0,
|
||||
0, 2, 0, 0, 2, 128,
|
||||
1, 0, 85, 160, 6, 0,
|
||||
0, 2, 1, 0, 1, 128,
|
||||
0, 0, 0, 160, 6, 0,
|
||||
0, 2, 1, 0, 2, 128,
|
||||
0, 0, 85, 160, 5, 0,
|
||||
0, 3, 0, 0, 12, 128,
|
||||
0, 0, 27, 176, 0, 0,
|
||||
27, 160, 19, 0, 0, 2,
|
||||
0, 0, 12, 128, 0, 0,
|
||||
228, 128, 2, 0, 0, 3,
|
||||
2, 0, 3, 128, 0, 0,
|
||||
27, 129, 1, 0, 0, 160,
|
||||
4, 0, 0, 4, 2, 0,
|
||||
3, 128, 2, 0, 228, 128,
|
||||
1, 0, 228, 128, 0, 0,
|
||||
228, 176, 2, 0, 0, 3,
|
||||
3, 0, 3, 128, 1, 0,
|
||||
228, 128, 2, 0, 228, 128,
|
||||
1, 0, 0, 2, 1, 0,
|
||||
4, 128, 1, 0, 85, 160,
|
||||
2, 0, 0, 3, 4, 0,
|
||||
1, 128, 1, 0, 170, 128,
|
||||
2, 0, 0, 128, 2, 0,
|
||||
0, 3, 4, 0, 2, 128,
|
||||
1, 0, 85, 128, 2, 0,
|
||||
85, 128, 2, 0, 0, 3,
|
||||
1, 0, 1, 128, 1, 0,
|
||||
0, 128, 2, 0, 0, 128,
|
||||
2, 0, 0, 3, 1, 0,
|
||||
2, 128, 1, 0, 170, 128,
|
||||
2, 0, 85, 128, 66, 0,
|
||||
0, 3, 3, 0, 15, 128,
|
||||
3, 0, 228, 128, 0, 8,
|
||||
228, 160, 66, 0, 0, 3,
|
||||
2, 0, 15, 128, 2, 0,
|
||||
228, 128, 0, 8, 228, 160,
|
||||
66, 0, 0, 3, 1, 0,
|
||||
15, 128, 1, 0, 228, 128,
|
||||
0, 8, 228, 160, 66, 0,
|
||||
0, 3, 4, 0, 15, 128,
|
||||
4, 0, 228, 128, 0, 8,
|
||||
228, 160, 4, 0, 0, 4,
|
||||
0, 0, 1, 128, 3, 0,
|
||||
0, 128, 1, 0, 170, 160,
|
||||
1, 0, 255, 160, 1, 0,
|
||||
0, 2, 3, 0, 2, 128,
|
||||
1, 0, 85, 160, 4, 0,
|
||||
0, 4, 2, 0, 1, 128,
|
||||
2, 0, 0, 128, 1, 0,
|
||||
170, 160, 1, 0, 255, 160,
|
||||
4, 0, 0, 4, 1, 0,
|
||||
1, 128, 1, 0, 0, 128,
|
||||
1, 0, 170, 160, 1, 0,
|
||||
255, 160, 4, 0, 0, 4,
|
||||
3, 0, 1, 128, 4, 0,
|
||||
0, 128, 1, 0, 170, 160,
|
||||
1, 0, 255, 160, 1, 0,
|
||||
0, 2, 1, 0, 2, 128,
|
||||
1, 0, 85, 160, 1, 0,
|
||||
0, 2, 2, 0, 2, 128,
|
||||
1, 0, 85, 160, 66, 0,
|
||||
0, 3, 4, 0, 15, 128,
|
||||
0, 0, 228, 128, 1, 8,
|
||||
228, 160, 66, 0, 0, 3,
|
||||
3, 0, 15, 128, 3, 0,
|
||||
228, 128, 1, 8, 228, 160,
|
||||
66, 0, 0, 3, 1, 0,
|
||||
15, 128, 1, 0, 228, 128,
|
||||
1, 8, 228, 160, 66, 0,
|
||||
0, 3, 2, 0, 15, 128,
|
||||
2, 0, 228, 128, 1, 8,
|
||||
228, 160, 18, 0, 0, 4,
|
||||
5, 0, 15, 128, 0, 0,
|
||||
255, 128, 4, 0, 228, 128,
|
||||
3, 0, 228, 128, 18, 0,
|
||||
0, 4, 3, 0, 15, 128,
|
||||
0, 0, 255, 128, 1, 0,
|
||||
228, 128, 2, 0, 228, 128,
|
||||
18, 0, 0, 4, 1, 0,
|
||||
15, 128, 0, 0, 170, 128,
|
||||
5, 0, 228, 128, 3, 0,
|
||||
228, 128, 1, 0, 0, 2,
|
||||
0, 8, 15, 128, 1, 0,
|
||||
228, 128, 255, 255, 0, 0
|
||||
};
|
||||
{
|
||||
0, 2, 255, 255, 254, 255,
|
||||
56, 0, 67, 84, 65, 66,
|
||||
28, 0, 0, 0, 179, 0,
|
||||
0, 0, 0, 2, 255, 255,
|
||||
3, 0, 0, 0, 28, 0,
|
||||
0, 0, 0, 1, 0, 0,
|
||||
172, 0, 0, 0, 88, 0,
|
||||
0, 0, 3, 0, 1, 0,
|
||||
1, 0, 0, 0, 100, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
116, 0, 0, 0, 3, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
128, 0, 0, 0, 0, 0,
|
||||
0, 0, 144, 0, 0, 0,
|
||||
2, 0, 0, 0, 1, 0,
|
||||
2, 0, 156, 0, 0, 0,
|
||||
0, 0, 0, 0, 80, 97,
|
||||
108, 101, 116, 116, 101, 84,
|
||||
101, 120, 0, 171, 4, 0,
|
||||
12, 0, 1, 0, 1, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 83, 117, 114, 102,
|
||||
97, 99, 101, 84, 101, 120,
|
||||
0, 171, 4, 0, 12, 0,
|
||||
1, 0, 1, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
84, 101, 120, 116, 117, 114,
|
||||
101, 83, 105, 122, 101, 0,
|
||||
1, 0, 3, 0, 1, 0,
|
||||
4, 0, 1, 0, 0, 0,
|
||||
0, 0, 0, 0, 112, 115,
|
||||
95, 50, 95, 48, 0, 77,
|
||||
105, 99, 114, 111, 115, 111,
|
||||
102, 116, 32, 40, 82, 41,
|
||||
32, 72, 76, 83, 76, 32,
|
||||
83, 104, 97, 100, 101, 114,
|
||||
32, 67, 111, 109, 112, 105,
|
||||
108, 101, 114, 32, 49, 48,
|
||||
46, 49, 0, 171, 81, 0,
|
||||
0, 5, 1, 0, 15, 160,
|
||||
0, 0, 0, 63, 0, 0,
|
||||
0, 0, 0, 0, 127, 63,
|
||||
0, 0, 0, 59, 31, 0,
|
||||
0, 2, 0, 0, 0, 128,
|
||||
0, 0, 3, 176, 31, 0,
|
||||
0, 2, 0, 0, 0, 144,
|
||||
0, 8, 15, 160, 31, 0,
|
||||
0, 2, 0, 0, 0, 144,
|
||||
1, 8, 15, 160, 1, 0,
|
||||
0, 2, 0, 0, 2, 128,
|
||||
1, 0, 85, 160, 6, 0,
|
||||
0, 2, 1, 0, 1, 128,
|
||||
0, 0, 0, 160, 6, 0,
|
||||
0, 2, 1, 0, 2, 128,
|
||||
0, 0, 85, 160, 4, 0,
|
||||
0, 4, 2, 0, 3, 128,
|
||||
1, 0, 228, 128, 1, 0,
|
||||
0, 160, 0, 0, 228, 176,
|
||||
2, 0, 0, 3, 3, 0,
|
||||
3, 128, 1, 0, 228, 128,
|
||||
2, 0, 228, 128, 1, 0,
|
||||
0, 2, 1, 0, 4, 128,
|
||||
1, 0, 85, 160, 2, 0,
|
||||
0, 3, 4, 0, 1, 128,
|
||||
1, 0, 170, 128, 2, 0,
|
||||
0, 128, 2, 0, 0, 3,
|
||||
4, 0, 2, 128, 1, 0,
|
||||
85, 128, 2, 0, 85, 128,
|
||||
2, 0, 0, 3, 1, 0,
|
||||
1, 128, 1, 0, 0, 128,
|
||||
2, 0, 0, 128, 2, 0,
|
||||
0, 3, 1, 0, 2, 128,
|
||||
1, 0, 170, 128, 2, 0,
|
||||
85, 128, 66, 0, 0, 3,
|
||||
3, 0, 15, 128, 3, 0,
|
||||
228, 128, 0, 8, 228, 160,
|
||||
66, 0, 0, 3, 1, 0,
|
||||
15, 128, 1, 0, 228, 128,
|
||||
0, 8, 228, 160, 66, 0,
|
||||
0, 3, 4, 0, 15, 128,
|
||||
4, 0, 228, 128, 0, 8,
|
||||
228, 160, 66, 0, 0, 3,
|
||||
5, 0, 15, 128, 2, 0,
|
||||
228, 128, 0, 8, 228, 160,
|
||||
4, 0, 0, 4, 0, 0,
|
||||
1, 128, 3, 0, 0, 128,
|
||||
1, 0, 170, 160, 1, 0,
|
||||
255, 160, 4, 0, 0, 4,
|
||||
1, 0, 1, 128, 1, 0,
|
||||
0, 128, 1, 0, 170, 160,
|
||||
1, 0, 255, 160, 4, 0,
|
||||
0, 4, 3, 0, 1, 128,
|
||||
4, 0, 0, 128, 1, 0,
|
||||
170, 160, 1, 0, 255, 160,
|
||||
1, 0, 0, 2, 3, 0,
|
||||
2, 128, 1, 0, 85, 160,
|
||||
4, 0, 0, 4, 4, 0,
|
||||
1, 128, 5, 0, 0, 128,
|
||||
1, 0, 170, 160, 1, 0,
|
||||
255, 160, 1, 0, 0, 2,
|
||||
4, 0, 2, 128, 1, 0,
|
||||
85, 160, 1, 0, 0, 2,
|
||||
1, 0, 2, 128, 1, 0,
|
||||
85, 160, 66, 0, 0, 3,
|
||||
0, 0, 15, 128, 0, 0,
|
||||
228, 128, 1, 8, 228, 160,
|
||||
66, 0, 0, 3, 3, 0,
|
||||
15, 128, 3, 0, 228, 128,
|
||||
1, 8, 228, 160, 66, 0,
|
||||
0, 3, 4, 0, 15, 128,
|
||||
4, 0, 228, 128, 1, 8,
|
||||
228, 160, 66, 0, 0, 3,
|
||||
1, 0, 15, 128, 1, 0,
|
||||
228, 128, 1, 8, 228, 160,
|
||||
5, 0, 0, 3, 2, 0,
|
||||
3, 128, 2, 0, 228, 128,
|
||||
0, 0, 228, 160, 19, 0,
|
||||
0, 2, 2, 0, 3, 128,
|
||||
2, 0, 228, 128, 18, 0,
|
||||
0, 4, 5, 0, 15, 128,
|
||||
2, 0, 0, 128, 0, 0,
|
||||
228, 128, 3, 0, 228, 128,
|
||||
18, 0, 0, 4, 0, 0,
|
||||
15, 128, 2, 0, 0, 128,
|
||||
1, 0, 228, 128, 4, 0,
|
||||
228, 128, 18, 0, 0, 4,
|
||||
1, 0, 15, 128, 2, 0,
|
||||
85, 128, 5, 0, 228, 128,
|
||||
0, 0, 228, 128, 1, 0,
|
||||
0, 2, 0, 8, 15, 128,
|
||||
1, 0, 228, 128, 255, 255,
|
||||
0, 0
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* catmull rom upscaling */
|
||||
|
Loading…
x
Reference in New Issue
Block a user