[PATCH 3/3] d3d9/tests: More D3DTSS_TEXTURETRANSFORMFLAGS projection tests.
Matteo Bruni
mbruni at codeweavers.com
Tue Dec 27 10:28:59 CST 2011
---
dlls/d3d9/tests/visual.c | 388 ++++++++++++++++++++++++++++++++--------------
1 files changed, 269 insertions(+), 119 deletions(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 0d16415..e3f683f 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -3699,6 +3699,154 @@ out:
IDirect3D9_Release(d3d);
}
+static void check_rect(IDirect3DDevice9 *device, RECT r, const char *message)
+{
+ LONG x_coords[2][2] =
+ {
+ {r.left - 1, r.left + 1},
+ {r.right + 1, r.right - 1},
+ };
+ LONG y_coords[2][2] =
+ {
+ {r.top - 1, r.top + 1},
+ {r.bottom + 1, r.bottom - 1}
+ };
+ unsigned int i, j, x_side, y_side;
+
+ for (i = 0; i < 2; ++i)
+ {
+ for (j = 0; j < 2; ++j)
+ {
+ for (x_side = 0; x_side < 2; ++x_side)
+ {
+ for (y_side = 0; y_side < 2; ++y_side)
+ {
+ unsigned int x = x_coords[i][x_side], y = y_coords[j][y_side];
+ DWORD color;
+ DWORD expected = (x_side == 1 && y_side == 1) ? 0x00ffffff : 0;
+
+ color = getPixelColor(device, x, y);
+ ok(color == expected, "%s: Pixel (%d, %d) has color %08x, expected %08x\n",
+ message, x, y, color, expected);
+ }
+ }
+ }
+ }
+}
+
+struct projected_textures_test_run
+{
+ const char *message;
+ DWORD flags;
+ IDirect3DVertexDeclaration9 *decl;
+ BOOL vs, ps;
+ RECT rect;
+};
+
+static void projected_textures_test(IDirect3DDevice9 *device,
+ struct projected_textures_test_run tests[4])
+{
+ unsigned int i;
+
+ static const DWORD vertex_shader[] =
+ {
+ 0xfffe0101, /* vs_1_1 */
+ 0x0000001f, 0x80000000, 0x900f0000, /* dcl_position v0 */
+ 0x0000001f, 0x80000005, 0x900f0001, /* dcl_texcoord0 v1 */
+ 0x00000001, 0xc00f0000, 0x90e40000, /* mov oPos, v0 */
+ 0x00000001, 0xe00f0000, 0x90e40001, /* mov oT0, v1 */
+ 0x0000ffff /* end */
+ };
+ static const DWORD pixel_shader[] =
+ {
+ 0xffff0103, /* ps_1_3 */
+ 0x00000042, 0xb00f0000, /* tex t0 */
+ 0x00000001, 0x800f0000, 0xb0e40000, /* mov r0, t0 */
+ 0x0000ffff /* end */
+ };
+ IDirect3DVertexShader9 *vs = NULL;
+ IDirect3DPixelShader9 *ps = NULL;
+ HRESULT hr;
+
+ hr = IDirect3DDevice9_CreateVertexShader(device, vertex_shader, &vs);
+ ok(SUCCEEDED(hr), "CreateVertexShader failed (%08x)\n", hr);
+ hr = IDirect3DDevice9_CreatePixelShader(device, pixel_shader, &ps);
+ ok(SUCCEEDED(hr), "CreatePixelShader failed (%08x)\n", hr);
+
+ hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xff203040, 0.0f, 0);
+ ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
+
+ hr = IDirect3DDevice9_BeginScene(device);
+ ok(hr == D3D_OK, "IDirect3DDevice9_BeginScene failed with %08x\n", hr);
+ if (FAILED(hr))
+ return;
+
+ for (i = 0; i < 4; ++i)
+ {
+ DWORD value = 0xdeadbeef;
+ static const float proj_quads[] =
+ {
+ -1.0, -1.0, 0.1, 0.0, 0.0, 4.0, 6.0,
+ 0.0, -1.0, 0.1, 4.0, 0.0, 4.0, 6.0,
+ -1.0, 0.0, 0.1, 0.0, 4.0, 4.0, 6.0,
+ 0.0, 0.0, 0.1, 4.0, 4.0, 4.0, 6.0,
+
+ 0.0, -1.0, 0.1, 0.0, 0.0, 4.0, 6.0,
+ 1.0, -1.0, 0.1, 4.0, 0.0, 4.0, 6.0,
+ 0.0, 0.0, 0.1, 0.0, 4.0, 4.0, 6.0,
+ 1.0, 0.0, 0.1, 4.0, 4.0, 4.0, 6.0,
+
+ -1.0, 0.0, 0.1, 0.0, 0.0, 4.0, 6.0,
+ 0.0, 0.0, 0.1, 4.0, 0.0, 4.0, 6.0,
+ -1.0, 1.0, 0.1, 0.0, 4.0, 4.0, 6.0,
+ 0.0, 1.0, 0.1, 4.0, 4.0, 4.0, 6.0,
+
+ 0.0, 0.0, 0.1, 0.0, 0.0, 4.0, 6.0,
+ 1.0, 0.0, 0.1, 4.0, 0.0, 4.0, 6.0,
+ 0.0, 1.0, 0.1, 0.0, 4.0, 4.0, 6.0,
+ 1.0, 1.0, 0.1, 4.0, 4.0, 4.0, 6.0,
+ };
+
+ if (tests[i].vs)
+ hr = IDirect3DDevice9_SetVertexShader(device, vs);
+ else
+ hr = IDirect3DDevice9_SetVertexShader(device, NULL);
+ ok(SUCCEEDED(hr), "SetVertexShader failed (%08x)\n", hr);
+ if (tests[i].ps)
+ hr = IDirect3DDevice9_SetPixelShader(device, ps);
+ else
+ hr = IDirect3DDevice9_SetPixelShader(device, NULL);
+ ok(SUCCEEDED(hr), "SetPixelShader failed (%08x)\n", hr);
+
+ hr = IDirect3DDevice9_SetVertexDeclaration(device, tests[i].decl);
+ ok(hr == D3D_OK, "IDirect3DDevice9_SetVertexDeclaration failed with %08x\n", hr);
+
+ IDirect3DDevice9_SetTextureStageState(device, 0, D3DTSS_TEXTURETRANSFORMFLAGS, tests[i].flags);
+ ok(SUCCEEDED(hr), "IDirect3DDevice9_SetTextureStageState failed (%08x)\n", hr);
+ hr = IDirect3DDevice9_GetTextureStageState(device, 0, D3DTSS_TEXTURETRANSFORMFLAGS, &value);
+ ok(SUCCEEDED(hr) && value == tests[i].flags,
+ "GetTextureStageState returned: hr %08x, value %08x.\n", hr, value);
+
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2,
+ &proj_quads[i * 4 * 7], 7 * sizeof(float));
+ ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
+ }
+
+ hr = IDirect3DDevice9_EndScene(device);
+ ok(hr == D3D_OK, "IDirect3DDevice9_EndScene failed with %08x\n", hr);
+
+ hr = IDirect3DDevice9_SetVertexShader(device, NULL);
+ hr = IDirect3DDevice9_SetPixelShader(device, NULL);
+ IDirect3DVertexShader9_Release(vs);
+ IDirect3DPixelShader9_Release(ps);
+
+ for (i = 0; i < 4; ++i)
+ check_rect(device, tests[i].rect, tests[i].message);
+
+ hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
+ ok(hr == D3D_OK, "IDirect3DDevice9_Present failed with %08x\n", hr);
+}
+
static void texture_transform_flags_test(IDirect3DDevice9 *device)
{
HRESULT hr;
@@ -3712,7 +3860,7 @@ static void texture_transform_flags_test(IDirect3DDevice9 *device)
D3DLOCKED_BOX lb;
DWORD color;
UINT w, h;
- IDirect3DVertexDeclaration9 *decl, *decl2, *decl3;
+ IDirect3DVertexDeclaration9 *decl, *decl2, *decl3, *decl4;
float identity[16] = {1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
@@ -3732,6 +3880,11 @@ static void texture_transform_flags_test(IDirect3DDevice9 *device)
{0, 12, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
D3DDECL_END()
};
+ static const D3DVERTEXELEMENT9 decl_elements4[] = {
+ {0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
+ {0, 12, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
+ D3DDECL_END()
+ };
static const unsigned char proj_texdata[] = {0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
@@ -3752,6 +3905,8 @@ static void texture_transform_flags_test(IDirect3DDevice9 *device)
ok(hr == D3D_OK, "IDirect3DDevice9_CreateVertexDeclaration returned %08x\n", hr);
hr = IDirect3DDevice9_CreateVertexDeclaration(device, decl_elements3, &decl3);
ok(hr == D3D_OK, "IDirect3DDevice9_CreateVertexDeclaration returned %08x\n", hr);
+ hr = IDirect3DDevice9_CreateVertexDeclaration(device, decl_elements4, &decl4);
+ ok(hr == D3D_OK, "IDirect3DDevice9_CreateVertexDeclaration returned %08x\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_SRGBTEXTURE, FALSE);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState(D3DSAMP_SRGBTEXTURE) returned %08x\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
@@ -3995,132 +4150,126 @@ static void texture_transform_flags_test(IDirect3DDevice9 *device)
IDirect3DTexture9_Release(texture);
/* Test projected textures, without any fancy matrices */
- hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xff203040, 0.0, 0);
- ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
hr = IDirect3DDevice9_CreateTexture(device, 4, 4, 1, 0, D3DFMT_L8, D3DPOOL_MANAGED, &texture, NULL);
ok(hr == D3D_OK, "IDirect3DDevice9_CreateTexture returned %08x\n", hr);
- hr = IDirect3DDevice9_SetTransform(device, D3DTS_TEXTURE0, (D3DMATRIX *) &identity);
- ok(hr == D3D_OK, "IDirect3DDevice9_SetTransform failed with %08x\n", hr);
- hr = IDirect3DDevice9_SetVertexDeclaration(device, decl3);
- ok(hr == D3D_OK, "IDirect3DDevice9_SetVertexDeclaration failed with %08x\n", hr);
-
- hr = IDirect3DTexture9_LockRect(texture, 0, &lr, NULL, 0);
- ok(hr == D3D_OK, "IDirect3DTexture9_LockRect failed with %08x\n", hr);
- for(x = 0; x < 4; x++) {
- memcpy(((BYTE *) lr.pBits) + lr.Pitch * x, proj_texdata + 4 * x, 4 * sizeof(proj_texdata[0]));
- }
- hr = IDirect3DTexture9_UnlockRect(texture, 0);
- ok(hr == D3D_OK, "IDirect3DTexture9_UnlockRect failed with %08x\n", hr);
- hr = IDirect3DDevice9_SetTexture(device, 0, (IDirect3DBaseTexture9 *) texture);
- ok(hr == D3D_OK, "IDirect3DDevice9_SetTexture failed with %08x\n", hr);
-
- hr = IDirect3DDevice9_BeginScene(device);
- ok(hr == D3D_OK, "IDirect3DDevice9_BeginScene failed with %08x\n", hr);
- if(SUCCEEDED(hr))
+ if (SUCCEEDED(hr))
{
- const float proj_quads[] = {
- -1.0, -1.0, 0.1, 0.0, 0.0, 4.0, 6.0,
- 1.0, -1.0, 0.1, 4.0, 0.0, 4.0, 6.0,
- -1.0, 0.0, 0.1, 0.0, 4.0, 4.0, 6.0,
- 1.0, 0.0, 0.1, 4.0, 4.0, 4.0, 6.0,
- -1.0, 0.0, 0.1, 0.0, 0.0, 4.0, 6.0,
- 1.0, 0.0, 0.1, 4.0, 0.0, 4.0, 6.0,
- -1.0, 1.0, 0.1, 0.0, 4.0, 4.0, 6.0,
- 1.0, 1.0, 0.1, 4.0, 4.0, 4.0, 6.0,
+ struct projected_textures_test_run projected_tests_1[4] =
+ {
+ {
+ "D3DTTFF_COUNT4 | D3DTTFF_PROJECTED - bottom left",
+ D3DTTFF_COUNT4 | D3DTTFF_PROJECTED,
+ decl3,
+ FALSE, TRUE,
+ {120, 300, 240, 390},
+ },
+ {
+ "D3DTTFF_COUNT3 | D3DTTFF_PROJECTED - bottom right",
+ D3DTTFF_COUNT3 | D3DTTFF_PROJECTED,
+ decl3,
+ FALSE, TRUE,
+ {400, 360, 480, 420},
+ },
+ /* Try with some invalid values */
+ {
+ "0xffffffff (draws like COUNT4 | PROJECTED) - top left",
+ 0xffffffff,
+ decl3,
+ FALSE, TRUE,
+ {120, 60, 240, 150}
+ },
+ {
+ "D3DTTFF_COUNT3 | D3DTTFF_PROJECTED (draws non-projected) - top right",
+ D3DTTFF_COUNT3 | D3DTTFF_PROJECTED,
+ decl4,
+ FALSE, TRUE,
+ {340, 210, 360, 225},
+ }
+ };
+ struct projected_textures_test_run projected_tests_2[4] =
+ {
+ {
+ "D3DTTFF_PROJECTED (like COUNT4 | PROJECTED, texcoord has 4 components) - bottom left",
+ D3DTTFF_PROJECTED,
+ decl3,
+ FALSE, TRUE,
+ {120, 300, 240, 390},
+ },
+ {
+ "D3DTTFF_PROJECTED (like COUNT3 | PROJECTED, texcoord has only 3 components) - bottom right",
+ D3DTTFF_PROJECTED,
+ decl,
+ FALSE, TRUE,
+ {400, 360, 480, 420},
+ },
+ {
+ "0xffffffff (like COUNT3 | PROJECTED, texcoord has only 3 components) - top left",
+ 0xffffffff,
+ decl,
+ FALSE, TRUE,
+ {80, 120, 160, 180},
+ },
+ {
+ "D3DTTFF_COUNT1 (draws non-projected) - top right",
+ D3DTTFF_COUNT1,
+ decl4,
+ FALSE, TRUE,
+ {340, 210, 360, 225},
+ }
+ };
+ struct projected_textures_test_run projected_tests_3[4] =
+ {
+ {
+ "D3DTTFF_PROJECTED (like COUNT4 | PROJECTED) - bottom left",
+ D3DTTFF_PROJECTED,
+ decl3,
+ TRUE, TRUE,
+ {120, 300, 240, 390},
+ },
+ {
+ "D3DTTFF_PROJECTED (like COUNT4 | PROJECTED, the w component has the default value 1.0) - bottom right",
+ D3DTTFF_PROJECTED,
+ decl,
+ TRUE, TRUE,
+ {340, 450, 360, 465},
+ },
+ {
+ "0xffffffff (like COUNT4 | PROJECTED, the w component has the default value 1.0) - top left",
+ 0xffffffff,
+ decl,
+ TRUE, TRUE,
+ {20, 210, 40, 225},
+ },
+ {
+ "D3DTTFF_PROJECTED (like COUNT4 | PROJECTED) - top right",
+ D3DTTFF_PROJECTED,
+ decl3,
+ FALSE, FALSE,
+ {440, 60, 560, 150},
+ },
};
- IDirect3DDevice9_SetTextureStageState(device, 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT4 | D3DTTFF_PROJECTED);
- ok(SUCCEEDED(hr), "IDirect3DDevice9_SetTextureStageState failed (%08x)\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &proj_quads[0*7], 7 * sizeof(float));
- ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
-
- IDirect3DDevice9_SetTextureStageState(device, 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT3 | D3DTTFF_PROJECTED);
- ok(SUCCEEDED(hr), "IDirect3DDevice9_SetTextureStageState failed (%08x)\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &proj_quads[4*7], 7 * sizeof(float));
- ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
-
- hr = IDirect3DDevice9_EndScene(device);
- ok(hr == D3D_OK, "IDirect3DDevice9_EndScene failed with %08x\n", hr);
- }
+ hr = IDirect3DDevice9_SetTransform(device, D3DTS_TEXTURE0, (D3DMATRIX *) &identity);
+ ok(hr == D3D_OK, "IDirect3DDevice9_SetTransform failed with %08x\n", hr);
- hr = IDirect3DDevice9_SetTexture(device, 0, NULL);
- ok(hr == D3D_OK, "IDirect3DDevice9_SetTexture failed with %08x\n", hr);
- IDirect3DTexture9_Release(texture);
+ hr = IDirect3DTexture9_LockRect(texture, 0, &lr, NULL, 0);
+ ok(hr == D3D_OK, "IDirect3DTexture9_LockRect failed with %08x\n", hr);
+ for(x = 0; x < 4; x++) {
+ memcpy(((BYTE *) lr.pBits) + lr.Pitch * x, proj_texdata + 4 * x, 4 * sizeof(proj_texdata[0]));
+ }
+ hr = IDirect3DTexture9_UnlockRect(texture, 0);
+ ok(hr == D3D_OK, "IDirect3DTexture9_UnlockRect failed with %08x\n", hr);
+ hr = IDirect3DDevice9_SetTexture(device, 0, (IDirect3DBaseTexture9 *) texture);
+ ok(hr == D3D_OK, "IDirect3DDevice9_SetTexture failed with %08x\n", hr);
- color = getPixelColor(device, 158, 118);
- ok(color == 0x00000000, "proj: Pixel 158/118 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 162, 118);
- ok(color == 0x00000000, "proj: Pixel 162/118 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 158, 122);
- ok(color == 0x00000000, "proj: Pixel 158/122 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 162, 122);
- ok(color == 0x00FFFFFF, "proj: Pixel 162/122 has color 0x%08x, expected 0x00FFFFFF\n", color);
-
- color = getPixelColor(device, 158, 178);
- ok(color == 0x00000000, "proj: Pixel 158/178 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 162, 178);
- ok(color == 0x00FFFFFF, "proj: Pixel 158/178 has color 0x%08x, expected 0x00FFFFFF\n", color);
- color = getPixelColor(device, 158, 182);
- ok(color == 0x00000000, "proj: Pixel 158/182 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 162, 182);
- ok(color == 0x00000000, "proj: Pixel 158/182 has color 0x%08x, expected 0x00000000\n", color);
-
- color = getPixelColor(device, 318, 118);
- ok(color == 0x00000000, "proj: Pixel 318/118 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 322, 118);
- ok(color == 0x00000000, "proj: Pixel 322/118 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 318, 122);
- ok(color == 0x00FFFFFF, "proj: Pixel 318/122 has color 0x%08x, expected 0x00FFFFFF\n", color);
- color = getPixelColor(device, 322, 122);
- ok(color == 0x00000000, "proj: Pixel 322/122 has color 0x%08x, expected 0x00000000\n", color);
-
- color = getPixelColor(device, 318, 178);
- ok(color == 0x00FFFFFF, "proj: Pixel 318/178 has color 0x%08x, expected 0x00FFFFFF\n", color);
- color = getPixelColor(device, 322, 178);
- ok(color == 0x00000000, "proj: Pixel 322/178 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 318, 182);
- ok(color == 0x00000000, "proj: Pixel 318/182 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 322, 182);
- ok(color == 0x00000000, "proj: Pixel 322/182 has color 0x%08x, expected 0x00000000\n", color);
-
- color = getPixelColor(device, 238, 298);
- ok(color == 0x00000000, "proj: Pixel 238/298 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 242, 298);
- ok(color == 0x00000000, "proj: Pixel 242/298 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 238, 302);
- ok(color == 0x00000000, "proj: Pixel 238/302 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 242, 302);
- ok(color == 0x00FFFFFF, "proj: Pixel 242/302 has color 0x%08x, expected 0x00FFFFFF\n", color);
-
- color = getPixelColor(device, 238, 388);
- ok(color == 0x00000000, "proj: Pixel 238/388 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 242, 388);
- ok(color == 0x00FFFFFF, "proj: Pixel 242/388 has color 0x%08x, expected 0x00FFFFFF\n", color);
- color = getPixelColor(device, 238, 392);
- ok(color == 0x00000000, "proj: Pixel 238/392 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 242, 392);
- ok(color == 0x00000000, "proj: Pixel 242/392 has color 0x%08x, expected 0x00000000\n", color);
-
- color = getPixelColor(device, 478, 298);
- ok(color == 0x00000000, "proj: Pixel 478/298 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 482, 298);
- ok(color == 0x00000000, "proj: Pixel 482/298 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 478, 302);
- ok(color == 0x00FFFFFF, "proj: Pixel 478/302 has color 0x%08x, expected 0x00FFFFFF\n", color);
- color = getPixelColor(device, 482, 302);
- ok(color == 0x00000000, "proj: Pixel 482/302 has color 0x%08x, expected 0x00000000\n", color);
-
- color = getPixelColor(device, 478, 388);
- ok(color == 0x00FFFFFF, "proj: Pixel 478/388 has color 0x%08x, expected 0x00FFFFFF\n", color);
- color = getPixelColor(device, 482, 388);
- ok(color == 0x00000000, "proj: Pixel 482/388 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 478, 392);
- ok(color == 0x00000000, "proj: Pixel 478/392 has color 0x%08x, expected 0x00000000\n", color);
- color = getPixelColor(device, 482, 392);
- ok(color == 0x00000000, "proj: Pixel 482/392 has color 0x%08x, expected 0x00000000\n", color);
+ projected_textures_test(device, projected_tests_1);
+ projected_textures_test(device, projected_tests_2);
+ projected_textures_test(device, projected_tests_3);
- hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
- ok(hr == D3D_OK, "IDirect3DDevice9_Present failed with %08x\n", hr);
+ hr = IDirect3DDevice9_SetTexture(device, 0, NULL);
+ ok(hr == D3D_OK, "IDirect3DDevice9_SetTexture failed with %08x\n", hr);
+ IDirect3DTexture9_Release(texture);
+ }
hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xff203040, 0.0, 0);
ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
@@ -4356,6 +4505,7 @@ static void texture_transform_flags_test(IDirect3DDevice9 *device)
IDirect3DVertexDeclaration9_Release(decl);
IDirect3DVertexDeclaration9_Release(decl2);
IDirect3DVertexDeclaration9_Release(decl3);
+ IDirect3DVertexDeclaration9_Release(decl4);
}
static void texdepth_test(IDirect3DDevice9 *device)
--
1.7.3.4
More information about the wine-patches
mailing list