mirror of
https://github.com/reactos/reactos.git
synced 2025-02-21 16:04:57 +00:00
[D3DRM_WINETEST] Sync with Wine Staging 4.18. CORE-16441
This commit is contained in:
parent
3d017d7150
commit
8015bf9f47
1 changed files with 663 additions and 34 deletions
|
@ -22,10 +22,12 @@
|
|||
#include <limits.h>
|
||||
|
||||
#define COBJMACROS
|
||||
#define _USE_MATH_DEFINES
|
||||
#include <d3d.h>
|
||||
#include <initguid.h>
|
||||
#include <d3drm.h>
|
||||
#include <d3drmwin.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "wine/test.h"
|
||||
|
||||
|
@ -58,21 +60,47 @@ static BOOL compare_float(float f, float g, unsigned int ulps)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
#define check_vector(a, b, c, d, e) check_vector_(__LINE__, a, b, c, d, e)
|
||||
static void check_vector_(unsigned int line, const D3DVECTOR *v, float x, float y, float z, unsigned int ulps)
|
||||
#define expect_matrix(m, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44, u) \
|
||||
expect_matrix_(__LINE__, m, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44, u)
|
||||
static void expect_matrix_(unsigned int line, D3DRMMATRIX4D m,
|
||||
float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24,
|
||||
float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
|
||||
unsigned int ulps)
|
||||
{
|
||||
BOOL ret = compare_float(U1(v)->x, x, ulps)
|
||||
&& compare_float(U2(v)->y, y, ulps)
|
||||
&& compare_float(U3(v)->z, z, ulps);
|
||||
BOOL equal = compare_float(m[0][0], m11, ulps) && compare_float(m[0][1], m12, ulps)
|
||||
&& compare_float(m[0][2], m13, ulps) && compare_float(m[0][3], m14, ulps)
|
||||
&& compare_float(m[1][0], m21, ulps) && compare_float(m[1][1], m22, ulps)
|
||||
&& compare_float(m[1][2], m23, ulps) && compare_float(m[1][3], m24, ulps)
|
||||
&& compare_float(m[2][0], m31, ulps) && compare_float(m[2][1], m32, ulps)
|
||||
&& compare_float(m[2][2], m33, ulps) && compare_float(m[2][3], m34, ulps)
|
||||
&& compare_float(m[3][0], m41, ulps) && compare_float(m[3][1], m42, ulps)
|
||||
&& compare_float(m[3][2], m43, ulps) && compare_float(m[3][3], m44, ulps);
|
||||
|
||||
ok_(__FILE__, line)(ret, "Got unexpected vector {%.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e}.\n",
|
||||
U1(v)->x, U2(v)->y, U3(v)->z, x, y, z);
|
||||
ok_(__FILE__, line)(equal,
|
||||
"Got unexpected matrix {%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, "
|
||||
"%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e}, "
|
||||
"expected {%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, "
|
||||
"%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e}.\n",
|
||||
m[0][0], m[0][1], m[0][2], m[0][3], m[1][0], m[1][1], m[1][2], m[1][3],
|
||||
m[2][0], m[2][1], m[2][2], m[2][3], m[3][0], m[3][1], m[3][2], m[3][3],
|
||||
m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
|
||||
}
|
||||
|
||||
#define expect_vector(v, x, y, z, u) expect_vector_(__LINE__, v, x, y, z, u)
|
||||
static void expect_vector_(unsigned int line, const D3DVECTOR *v, float x, float y, float z, unsigned int ulps)
|
||||
{
|
||||
BOOL equal = compare_float(U1(*v).x, x, ulps)
|
||||
&& compare_float(U2(*v).y, y, ulps)
|
||||
&& compare_float(U3(*v).z, z, ulps);
|
||||
|
||||
ok_(__FILE__, line)(equal, "Got unexpected vector {%.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e}.\n",
|
||||
U1(*v).x, U2(*v).y, U3(*v).z, x, y, z);
|
||||
}
|
||||
|
||||
#define vector_eq(a, b) vector_eq_(__LINE__, a, b)
|
||||
static void vector_eq_(unsigned int line, const D3DVECTOR *left, const D3DVECTOR *right)
|
||||
{
|
||||
check_vector_(line, left, U1(right)->x, U2(right)->y, U3(right)->z, 0);
|
||||
expect_vector_(line, left, U1(*right).x, U2(*right).y, U3(*right).z, 0);
|
||||
}
|
||||
|
||||
static D3DRMMATRIX4D identity = {
|
||||
|
@ -82,6 +110,42 @@ static D3DRMMATRIX4D identity = {
|
|||
{ 0.0f, 0.0f, 0.0f, 1.0f }
|
||||
};
|
||||
|
||||
static void frame_set_transform(IDirect3DRMFrame *frame,
|
||||
float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24,
|
||||
float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)
|
||||
{
|
||||
D3DRMMATRIX4D matrix =
|
||||
{
|
||||
{m11, m12, m13, m14},
|
||||
{m21, m22, m23, m24},
|
||||
{m31, m32, m33, m34},
|
||||
{m41, m42, m43, m44},
|
||||
};
|
||||
|
||||
IDirect3DRMFrame_AddTransform(frame, D3DRMCOMBINE_REPLACE, matrix);
|
||||
}
|
||||
|
||||
static void set_vector(D3DVECTOR *v, float x, float y, float z)
|
||||
{
|
||||
U1(*v).x = x;
|
||||
U2(*v).y = y;
|
||||
U3(*v).z = z;
|
||||
}
|
||||
|
||||
static void matrix_sanitise(D3DRMMATRIX4D m)
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
for (i = 0; i < 4; ++i)
|
||||
{
|
||||
for (j = 0; j < 4; ++j)
|
||||
{
|
||||
if (m[i][j] > -1e-7f && m[i][j] < 1e-7f)
|
||||
m[i][j] = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static HWND create_window(void)
|
||||
{
|
||||
RECT r = {0, 0, 640, 480};
|
||||
|
@ -458,10 +522,10 @@ static void test_MeshBuilder(void)
|
|||
/* Check that Load method generated default normals */
|
||||
hr = IDirect3DRMMeshBuilder_GetVertices(pMeshBuilder, NULL, NULL, &val2, n, NULL, NULL);
|
||||
ok(hr == D3DRM_OK, "Cannot get vertices information (hr = %x)\n", hr);
|
||||
check_vector(&n[0], 0.577350f, 0.577350f, 0.577350f, 32);
|
||||
check_vector(&n[1], -0.229416f, 0.688247f, 0.688247f, 32);
|
||||
check_vector(&n[2], -0.229416f, 0.688247f, 0.688247f, 32);
|
||||
check_vector(&n[3], -0.577350f, 0.577350f, 0.577350f, 32);
|
||||
expect_vector(&n[0], 0.577350f, 0.577350f, 0.577350f, 32);
|
||||
expect_vector(&n[1], -0.229416f, 0.688247f, 0.688247f, 32);
|
||||
expect_vector(&n[2], -0.229416f, 0.688247f, 0.688247f, 32);
|
||||
expect_vector(&n[3], -0.577350f, 0.577350f, 0.577350f, 32);
|
||||
|
||||
/* Check that Load method generated default texture coordinates (0.0f, 0.0f) for each vertex */
|
||||
valu = 1.23f;
|
||||
|
@ -557,12 +621,12 @@ static void test_MeshBuilder(void)
|
|||
ok(val1 == 3, "Wrong number of vertices %d (must be 3)\n", val1);
|
||||
ok(val2 == 3, "Wrong number of normals %d (must be 3)\n", val2);
|
||||
ok(val3 == 8, "Wrong number of face data bytes %d (must be 8)\n", val3);
|
||||
check_vector(&v[0], 0.1f, 0.2f, 0.3f, 32);
|
||||
check_vector(&v[1], 0.4f, 0.5f, 0.6f, 32);
|
||||
check_vector(&v[2], 0.7f, 0.8f, 0.9f, 32);
|
||||
check_vector(&n[0], 1.1f, 1.2f, 1.3f, 32);
|
||||
check_vector(&n[1], 1.4f, 1.5f, 1.6f, 32);
|
||||
check_vector(&n[2], 1.7f, 1.8f, 1.9f, 32);
|
||||
expect_vector(&v[0], 0.1f, 0.2f, 0.3f, 32);
|
||||
expect_vector(&v[1], 0.4f, 0.5f, 0.6f, 32);
|
||||
expect_vector(&v[2], 0.7f, 0.8f, 0.9f, 32);
|
||||
expect_vector(&n[0], 1.1f, 1.2f, 1.3f, 32);
|
||||
expect_vector(&n[1], 1.4f, 1.5f, 1.6f, 32);
|
||||
expect_vector(&n[2], 1.7f, 1.8f, 1.9f, 32);
|
||||
ok(f[0] == 3 , "Wrong component f[0] = %d (expected 3)\n", f[0]);
|
||||
ok(f[1] == 0 , "Wrong component f[1] = %d (expected 0)\n", f[1]);
|
||||
ok(f[2] == 0 , "Wrong component f[2] = %d (expected 0)\n", f[2]);
|
||||
|
@ -626,13 +690,13 @@ static void test_MeshBuilder(void)
|
|||
ok(val2 == 3, "Wrong number of normals %d (must be 3)\n", val2);
|
||||
ok(val1 == 3, "Wrong number of vertices %d (must be 3)\n", val1);
|
||||
|
||||
check_vector(&v[0], 0.1f * 2, 0.2f * 3, 0.3f * 4, 32);
|
||||
check_vector(&v[1], 0.4f * 2, 0.5f * 3, 0.6f * 4, 32);
|
||||
check_vector(&v[2], 0.7f * 2, 0.8f * 3, 0.9f * 4, 32);
|
||||
expect_vector(&v[0], 0.1f * 2, 0.2f * 3, 0.3f * 4, 32);
|
||||
expect_vector(&v[1], 0.4f * 2, 0.5f * 3, 0.6f * 4, 32);
|
||||
expect_vector(&v[2], 0.7f * 2, 0.8f * 3, 0.9f * 4, 32);
|
||||
/* Normals are not affected by Scale */
|
||||
check_vector(&n[0], 1.1f, 1.2f, 1.3f, 32);
|
||||
check_vector(&n[1], 1.4f, 1.5f, 1.6f, 32);
|
||||
check_vector(&n[2], 1.7f, 1.8f, 1.9f, 32);
|
||||
expect_vector(&n[0], 1.1f, 1.2f, 1.3f, 32);
|
||||
expect_vector(&n[1], 1.4f, 1.5f, 1.6f, 32);
|
||||
expect_vector(&n[2], 1.7f, 1.8f, 1.9f, 32);
|
||||
|
||||
IDirect3DRMMeshBuilder_Release(pMeshBuilder);
|
||||
|
||||
|
@ -1648,6 +1712,9 @@ static void test_object(void)
|
|||
|
||||
static void test_Viewport(void)
|
||||
{
|
||||
IDirect3DRMFrame3 *frame3, *d3drm_frame3, *tmp_frame3;
|
||||
IDirect3DRMFrame *frame, *d3drm_frame, *tmp_frame1;
|
||||
float field, left, top, right, bottom, front, back;
|
||||
IDirectDrawClipper *clipper;
|
||||
HRESULT hr;
|
||||
IDirect3DRM *d3drm1;
|
||||
|
@ -1655,8 +1722,6 @@ static void test_Viewport(void)
|
|||
IDirect3DRM3 *d3drm3;
|
||||
IDirect3DRMDevice *device1, *d3drm_device1;
|
||||
IDirect3DRMDevice3 *device3, *d3drm_device3;
|
||||
IDirect3DRMFrame *frame;
|
||||
IDirect3DRMFrame3 *frame3;
|
||||
IDirect3DRMViewport *viewport;
|
||||
IDirect3DRMViewport2 *viewport2;
|
||||
IDirect3DViewport *d3d_viewport;
|
||||
|
@ -1696,8 +1761,12 @@ static void test_Viewport(void)
|
|||
|
||||
hr = IDirect3DRM_CreateFrame(d3drm1, NULL, &frame);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRMFrame interface (hr = %x)\n", hr);
|
||||
hr = IDirect3DRM_CreateFrame(d3drm1, NULL, &tmp_frame1);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRM3_CreateFrame(d3drm3, NULL, &frame3);
|
||||
ok(SUCCEEDED(hr), "Cannot get IDirect3DRMFrame3 interface (hr = %x).\n", hr);
|
||||
hr = IDirect3DRM3_CreateFrame(d3drm3, NULL, &tmp_frame3);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
ref1 = get_refcount((IUnknown *)d3drm1);
|
||||
ref2 = get_refcount((IUnknown *)d3drm2);
|
||||
|
@ -1723,6 +1792,20 @@ static void test_Viewport(void)
|
|||
ok(device1 == d3drm_device1, "Expected device returned = %p, got %p.\n", device1, d3drm_device1);
|
||||
IDirect3DRMDevice_Release(d3drm_device1);
|
||||
|
||||
hr = IDirect3DRMViewport_SetCamera(viewport, NULL);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetCamera(viewport, &d3drm_frame);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(frame == d3drm_frame, "Expected frame returned = %p, got %p.\n", frame, d3drm_frame);
|
||||
IDirect3DRMFrame_Release(d3drm_frame);
|
||||
|
||||
hr = IDirect3DRMViewport_SetCamera(viewport, tmp_frame1);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetCamera(viewport, &d3drm_frame);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(d3drm_frame == tmp_frame1, "Got unexpected frame %p, expected %p.\n", d3drm_frame, tmp_frame1);
|
||||
IDirect3DRMFrame_Release(d3drm_frame);
|
||||
|
||||
IDirect3DRMViewport_Release(viewport);
|
||||
ref4 = get_refcount((IUnknown *)d3drm1);
|
||||
ok(ref4 == ref1, "Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
|
||||
|
@ -1753,6 +1836,20 @@ static void test_Viewport(void)
|
|||
ok(device1 == d3drm_device1, "Expected device returned = %p, got %p.\n", device1, d3drm_device1);
|
||||
IDirect3DRMDevice_Release(d3drm_device1);
|
||||
|
||||
hr = IDirect3DRMViewport_SetCamera(viewport, NULL);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetCamera(viewport, &d3drm_frame);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(frame == d3drm_frame, "Expected frame returned = %p, got %p.\n", frame, d3drm_frame);
|
||||
IDirect3DRMFrame_Release(d3drm_frame);
|
||||
|
||||
hr = IDirect3DRMViewport_SetCamera(viewport, tmp_frame1);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetCamera(viewport, &d3drm_frame);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(d3drm_frame == tmp_frame1, "Got unexpected frame %p, expected %p.\n", d3drm_frame, tmp_frame1);
|
||||
IDirect3DRMFrame_Release(d3drm_frame);
|
||||
|
||||
IDirect3DRMViewport_Release(viewport);
|
||||
ref4 = get_refcount((IUnknown *)d3drm1);
|
||||
ok(ref4 == ref1, "Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
|
||||
|
@ -1786,6 +1883,20 @@ static void test_Viewport(void)
|
|||
ok(device3 == d3drm_device3, "Expected device returned = %p, got %p.\n", device3, d3drm_device3);
|
||||
IDirect3DRMDevice3_Release(d3drm_device3);
|
||||
|
||||
hr = IDirect3DRMViewport2_SetCamera(viewport2, NULL);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_GetCamera(viewport2, &d3drm_frame3);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(frame3 == d3drm_frame3, "Expected frame returned = %p, got %p.\n", frame3, d3drm_frame3);
|
||||
IDirect3DRMFrame3_Release(d3drm_frame3);
|
||||
|
||||
hr = IDirect3DRMViewport2_SetCamera(viewport2, tmp_frame3);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_GetCamera(viewport2, &d3drm_frame3);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(d3drm_frame3 == tmp_frame3, "Got unexpected frame %p, expected %p.\n", d3drm_frame3, tmp_frame3);
|
||||
IDirect3DRMFrame3_Release(d3drm_frame3);
|
||||
|
||||
IDirect3DRMViewport2_Release(viewport2);
|
||||
ref4 = get_refcount((IUnknown *)d3drm1);
|
||||
ok(ref4 == ref1, "Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
|
||||
|
@ -1799,42 +1910,72 @@ static void test_Viewport(void)
|
|||
ok(ref4 == frame_ref2, "Expected ref4 == frame_ref2, got frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
|
||||
|
||||
/* Test all failures together */
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM_CreateViewport(d3drm1, NULL, frame, rc.left, rc.top, rc.right, rc.bottom, &viewport);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM_CreateViewport(d3drm1, device1, NULL, rc.left, rc.top, rc.right, rc.bottom, &viewport);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM_CreateViewport(d3drm1, device1, frame, rc.left, rc.top, rc.right + 1, rc.bottom + 1, &viewport);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM_CreateViewport(d3drm1, device1, frame, rc.left, rc.top, rc.right + 1, rc.bottom, &viewport);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM_CreateViewport(d3drm1, device1, frame, rc.left, rc.top, rc.right, rc.bottom + 1, &viewport);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
hr = IDirect3DRM_CreateViewport(d3drm1, device1, frame, rc.left, rc.top, rc.right, rc.bottom, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM2_CreateViewport(d3drm2, NULL, frame, rc.left, rc.top, rc.right, rc.bottom, &viewport);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM2_CreateViewport(d3drm2, device1, NULL, rc.left, rc.top, rc.right, rc.bottom, &viewport);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM2_CreateViewport(d3drm2, device1, frame, rc.left, rc.top, rc.right + 1, rc.bottom + 1, &viewport);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM2_CreateViewport(d3drm2, device1, frame, rc.left, rc.top, rc.right + 1, rc.bottom, &viewport);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
viewport = (IDirect3DRMViewport *)0xdeadbeef;
|
||||
hr = IDirect3DRM2_CreateViewport(d3drm2, device1, frame, rc.left, rc.top, rc.right, rc.bottom + 1, &viewport);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport, "Expected viewport returned == NULL, got %p.\n", viewport);
|
||||
hr = IDirect3DRM2_CreateViewport(d3drm2, device1, frame, rc.left, rc.top, rc.right, rc.bottom, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
|
||||
viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
|
||||
hr = IDirect3DRM3_CreateViewport(d3drm3, NULL, frame3, rc.left, rc.top, rc.right, rc.bottom, &viewport2);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
ok(!viewport2, "Expected viewport returned == NULL, got %p.\n", viewport2);
|
||||
viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
|
||||
hr = IDirect3DRM3_CreateViewport(d3drm3, device3, NULL, rc.left, rc.top, rc.right, rc.bottom, &viewport2);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
ok(!viewport2, "Expected viewport returned == NULL, got %p.\n", viewport2);
|
||||
viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
|
||||
hr = IDirect3DRM3_CreateViewport(d3drm3, device3, frame3, rc.left, rc.top, rc.right + 1, rc.bottom + 1, &viewport2);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport2, "Expected viewport returned == NULL, got %p.\n", viewport2);
|
||||
viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
|
||||
hr = IDirect3DRM3_CreateViewport(d3drm3, device3, frame3, rc.left, rc.top, rc.right + 1, rc.bottom, &viewport2);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport2, "Expected viewport returned == NULL, got %p.\n", viewport2);
|
||||
viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
|
||||
hr = IDirect3DRM3_CreateViewport(d3drm3, device3, frame3, rc.left, rc.top, rc.right, rc.bottom + 1, &viewport2);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
ok(!viewport2, "Expected viewport returned == NULL, got %p.\n", viewport2);
|
||||
hr = IDirect3DRM3_CreateViewport(d3drm3, device3, frame3, rc.left, rc.top, rc.right, rc.bottom, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
|
||||
|
@ -1994,6 +2135,32 @@ static void test_Viewport(void)
|
|||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetDevice(viewport, &d3drm_device1);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetCamera(viewport, &d3drm_frame);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
field = IDirect3DRMViewport_GetField(viewport);
|
||||
ok(field == -1.0f, "Got unexpected field %.8e.\n", field);
|
||||
left = right = bottom = top = 10.0f;
|
||||
hr = IDirect3DRMViewport_GetPlane(viewport, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == 10.0f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 10.0f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == 10.0f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 10.0f, "Got unexpected top %.8e.\n", top);
|
||||
front = IDirect3DRMViewport_GetFront(viewport);
|
||||
ok(front == -1.0f, "Got unexpected front %.8e\n", front);
|
||||
back = IDirect3DRMViewport_GetBack(viewport);
|
||||
ok(back == -1.0f, "Got unexpected back %.8e\n", back);
|
||||
|
||||
hr = IDirect3DRMViewport_SetCamera(viewport, frame);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetField(viewport, 0.5f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetPlane(viewport, -0.5f, 0.5f, -0.5f, 0.5f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetFront(viewport, 1.0f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetBack(viewport, 100.0f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
/* Test all failures together */
|
||||
hr = IDirect3DRMViewport_Init(viewport, NULL, frame, rc.left, rc.top, rc.right, rc.bottom);
|
||||
|
@ -2057,8 +2224,70 @@ static void test_Viewport(void)
|
|||
ok(vp.dvMaxY == expected_val, "Expected dvMaxY = %f, got %f.\n", expected_val, vp.dvMaxY);
|
||||
IDirect3DViewport_Release(d3d_viewport);
|
||||
|
||||
field = IDirect3DRMViewport_GetField(viewport);
|
||||
ok(field == 0.5f, "Got unexpected field %.8e.\n", field);
|
||||
hr = IDirect3DRMViewport_GetPlane(viewport, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == -0.5f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 0.5f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == -0.5f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 0.5f, "Got unexpected top %.8e.\n", top);
|
||||
front = IDirect3DRMViewport_GetFront(viewport);
|
||||
ok(front == 1.0f, "Got unexpected front %.8e.\n", front);
|
||||
back = IDirect3DRMViewport_GetBack(viewport);
|
||||
ok(back == 100.0f, "Got unexpected back %.8e.\n", back);
|
||||
|
||||
hr = IDirect3DRMViewport_SetField(viewport, 1.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
field = IDirect3DRMViewport_GetField(viewport);
|
||||
ok(field == 1.0f, "Got unexpected field %.8e.\n", field);
|
||||
hr = IDirect3DRMViewport_GetPlane(viewport, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == -1.0f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 1.0f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == -1.0f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 1.0f, "Got unexpected top %.8e.\n", top);
|
||||
|
||||
hr = IDirect3DRMViewport_SetPlane(viewport, 5.0f, 3.0f, 2.0f, 0.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
field = IDirect3DRMViewport_GetField(viewport);
|
||||
ok(field == -1.0f, "Got unexpected field %.8e.\n", field);
|
||||
hr = IDirect3DRMViewport_GetPlane(viewport, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == 5.0f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 3.0f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == 2.0f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 0.0f, "Got unexpected top %.8e.\n", top);
|
||||
hr = IDirect3DRMViewport_SetFront(viewport, 2.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
front = IDirect3DRMViewport_GetFront(viewport);
|
||||
ok(front == 2.0f, "Got unexpected front %.8e.\n", front);
|
||||
hr = IDirect3DRMViewport_SetBack(viewport, 200.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
back = IDirect3DRMViewport_GetBack(viewport);
|
||||
ok(back == 200.0f, "Got unexpected back %.8e.\n", back);
|
||||
|
||||
hr = IDirect3DRMViewport_Init(viewport, device1, frame, rc.left, rc.top, rc.right, rc.bottom);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetDevice(viewport, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetDirect3DViewport(viewport, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_GetCamera(viewport, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetField(viewport, 0.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetField(viewport, -1.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetFront(viewport, 0.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetFront(viewport, -1.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
front = IDirect3DRMViewport_GetFront(viewport);
|
||||
hr = IDirect3DRMViewport_SetBack(viewport, front);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport_SetBack(viewport, front / 2.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
IDirect3DRMViewport_Release(viewport);
|
||||
ref4 = get_refcount((IUnknown *)d3drm1);
|
||||
|
@ -2089,6 +2318,32 @@ static void test_Viewport(void)
|
|||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_GetDevice(viewport2, &d3drm_device3);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_GetCamera(viewport2, &d3drm_frame3);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
field = IDirect3DRMViewport2_GetField(viewport2);
|
||||
ok(field == -1.0f, "Got unexpected field %.8e.\n", field);
|
||||
left = right = bottom = top = 10.0f;
|
||||
hr = IDirect3DRMViewport2_GetPlane(viewport2, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == 10.0f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 10.0f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == 10.0f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 10.0f, "Got unexpected top %.8e.\n", top);
|
||||
front = IDirect3DRMViewport2_GetFront(viewport2);
|
||||
ok(front == -1.0f, "Got unexpected front %.8e\n", front);
|
||||
back = IDirect3DRMViewport2_GetBack(viewport2);
|
||||
ok(back == -1.0f, "Got unexpected back %.8e\n", back);
|
||||
|
||||
hr = IDirect3DRMViewport2_SetCamera(viewport2, frame3);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetField(viewport2, 0.5f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetPlane(viewport2, -0.5f, 0.5f, -0.5f, 0.5f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetFront(viewport2, 1.0f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetBack(viewport2, 100.0f);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
hr = IDirect3DRMViewport2_Init(viewport2, NULL, frame3, rc.left, rc.top, rc.right, rc.bottom);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
|
@ -2145,8 +2400,70 @@ static void test_Viewport(void)
|
|||
ok(vp.dvMaxY == expected_val, "Expected dvMaxY = %f, got %f.\n", expected_val, vp.dvMaxY);
|
||||
IDirect3DViewport_Release(d3d_viewport);
|
||||
|
||||
field = IDirect3DRMViewport2_GetField(viewport2);
|
||||
ok(field == 0.5f, "Got unexpected field %.8e.\n", field);
|
||||
hr = IDirect3DRMViewport2_GetPlane(viewport2, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == -0.5f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 0.5f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == -0.5f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 0.5f, "Got unexpected top %.8e.\n", top);
|
||||
front = IDirect3DRMViewport2_GetFront(viewport2);
|
||||
ok(front == 1.0f, "Got unexpected front %.8e.\n", front);
|
||||
back = IDirect3DRMViewport2_GetBack(viewport2);
|
||||
ok(back == 100.0f, "Got unexpected back %.8e.\n", back);
|
||||
|
||||
hr = IDirect3DRMViewport2_SetField(viewport2, 1.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
field = IDirect3DRMViewport2_GetField(viewport2);
|
||||
ok(field == 1.0f, "Got unexpected field %.8e.\n", field);
|
||||
hr = IDirect3DRMViewport2_GetPlane(viewport2, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == -1.0f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 1.0f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == -1.0f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 1.0f, "Got unexpected top %.8e.\n", top);
|
||||
|
||||
hr = IDirect3DRMViewport2_SetPlane(viewport2, 5.0f, 3.0f, 2.0f, 0.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
field = IDirect3DRMViewport2_GetField(viewport2);
|
||||
ok(field == -1.0f, "Got unexpected field %.8e.\n", field);
|
||||
hr = IDirect3DRMViewport2_GetPlane(viewport2, &left, &right, &bottom, &top);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(left == 5.0f, "Got unexpected left %.8e.\n", left);
|
||||
ok(right == 3.0f, "Got unexpected right %.8e.\n", right);
|
||||
ok(bottom == 2.0f, "Got unexpected bottom %.8e.\n", bottom);
|
||||
ok(top == 0.0f, "Got unexpected top %.8e.\n", top);
|
||||
hr = IDirect3DRMViewport2_SetFront(viewport2, 2.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
front = IDirect3DRMViewport2_GetFront(viewport2);
|
||||
ok(front == 2.0f, "Got unexpected front %.8e.\n", front);
|
||||
hr = IDirect3DRMViewport2_SetBack(viewport2, 200.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
back = IDirect3DRMViewport2_GetBack(viewport2);
|
||||
ok(back == 200.0f, "Got unexpected back %.8e.\n", back);
|
||||
|
||||
hr = IDirect3DRMViewport2_Init(viewport2, device3, frame3, rc.left, rc.top, rc.right, rc.bottom);
|
||||
ok(hr == D3DRMERR_BADOBJECT, "Expected hr == D3DRMERR_BADOBJECT, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_GetDevice(viewport2, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_GetDirect3DViewport(viewport2, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_GetCamera(viewport2, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetField(viewport2, 0.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetField(viewport2, -1.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetFront(viewport2, 0.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetFront(viewport2, -1.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
front = IDirect3DRMViewport2_GetFront(viewport2);
|
||||
hr = IDirect3DRMViewport2_SetBack(viewport2, front);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMViewport2_SetBack(viewport2, front / 2.0f);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
IDirect3DRMViewport2_Release(viewport2);
|
||||
ref4 = get_refcount((IUnknown *)d3drm1);
|
||||
|
@ -2173,6 +2490,7 @@ static void test_Viewport(void)
|
|||
ref4 = get_refcount((IUnknown *)frame3);
|
||||
ok(ref4 == frame_ref2, "Expected ref4 == frame_ref2, got frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
|
||||
|
||||
IDirect3DRMFrame3_Release(tmp_frame3);
|
||||
IDirect3DRMFrame3_Release(frame3);
|
||||
ref4 = get_refcount((IUnknown *)d3drm1);
|
||||
ok(ref4 > initial_ref1, "Expected ref4 > initial_ref1, got initial_ref1 = %u, ref4 = %u.\n", initial_ref1, ref4);
|
||||
|
@ -2181,6 +2499,7 @@ static void test_Viewport(void)
|
|||
ref4 = get_refcount((IUnknown *)d3drm3);
|
||||
ok(ref4 == initial_ref3, "Expected ref4 == initial_ref3, got initial_ref3 = %u, ref4 = %u.\n", initial_ref3, ref4);
|
||||
|
||||
IDirect3DRMFrame3_Release(tmp_frame1);
|
||||
IDirect3DRMFrame_Release(frame);
|
||||
ref4 = get_refcount((IUnknown *)d3drm1);
|
||||
ok(ref4 == initial_ref1, "Expected ref4 == initial_ref1, got initial_ref1 = %u, ref4 = %u.\n", initial_ref1, ref4);
|
||||
|
@ -2711,21 +3030,262 @@ cleanup:
|
|||
|
||||
static void test_frame_transform(void)
|
||||
{
|
||||
HRESULT hr;
|
||||
IDirect3DRMFrame *frame, *subframe;
|
||||
D3DRMMATRIX4D matrix, add_matrix;
|
||||
IDirect3DRM *d3drm;
|
||||
IDirect3DRMFrame *frame;
|
||||
D3DRMMATRIX4D matrix;
|
||||
D3DVECTOR v1, v2;
|
||||
HRESULT hr;
|
||||
|
||||
hr = Direct3DRMCreate(&d3drm);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n", hr);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
hr = IDirect3DRM_CreateFrame(d3drm, NULL, &frame);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRMFrame interface (hr = %x)\n", hr);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "IDirect3DRMFrame_GetTransform returned hr = %x\n", hr);
|
||||
ok(!memcmp(matrix, identity, sizeof(D3DRMMATRIX4D)), "Returned matrix is not identity\n");
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f, 0);
|
||||
|
||||
memcpy(add_matrix, identity, sizeof(add_matrix));
|
||||
add_matrix[3][0] = 3.0f;
|
||||
add_matrix[3][1] = 3.0f;
|
||||
add_matrix[3][2] = 3.0f;
|
||||
|
||||
frame_set_transform(frame,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddTransform(frame, D3DRMCOMBINE_REPLACE, add_matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddTransform(frame, D3DRMCOMBINE_BEFORE, add_matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
6.0f, 6.0f, 6.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddTransform(frame, D3DRMCOMBINE_AFTER, add_matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f, 1);
|
||||
|
||||
add_matrix[3][3] = 2.0f;
|
||||
hr = IDirect3DRMFrame_AddTransform(frame, D3DRMCOMBINE_REPLACE, add_matrix);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
frame_set_transform(frame,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddTranslation(frame, D3DRMCOMBINE_REPLACE, 3.0f, 3.0f, 3.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddTranslation(frame, D3DRMCOMBINE_BEFORE, 3.0f, 3.0f, 3.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
6.0f, 6.0f, 6.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddTranslation(frame, D3DRMCOMBINE_AFTER, 3.0f, 3.0f, 3.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddScale(frame, D3DRMCOMBINE_REPLACE, 2.0f, 2.0f, 2.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddScale(frame, D3DRMCOMBINE_BEFORE, 2.0f, 2.0f, 2.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddScale(frame, D3DRMCOMBINE_AFTER, 2.0f, 2.0f, 2.0f);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_matrix(matrix,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 2.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 2.0f, 0.0f,
|
||||
6.0f, 6.0f, 6.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddRotation(frame, D3DRMCOMBINE_REPLACE, 1.0f, 0.0f, 0.0f, M_PI_2);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
matrix_sanitise(matrix);
|
||||
expect_matrix(matrix,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.0f, -1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddRotation(frame, D3DRMCOMBINE_BEFORE, 1.0f, 0.0f, 0.0f, M_PI_2);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
matrix_sanitise(matrix);
|
||||
expect_matrix(matrix,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.0f, -1.0f, 0.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
3.0f, 3.0f, 3.0f, 1.0f);
|
||||
hr = IDirect3DRMFrame_AddRotation(frame, D3DRMCOMBINE_AFTER, 1.0f, 0.0f, 0.0f, M_PI_2);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
matrix_sanitise(matrix);
|
||||
expect_matrix(matrix,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.0f, -1.0f, 0.0f, 0.0f,
|
||||
3.0f, -3.0f, 3.0f, 1.0f, 1);
|
||||
|
||||
hr = IDirect3DRMFrame_AddRotation(frame, D3DRMCOMBINE_REPLACE, 0.0f, 0.0f, 1.0f, M_PI_2);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
matrix_sanitise(matrix);
|
||||
expect_matrix(matrix,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
-1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f, 1);
|
||||
|
||||
hr = IDirect3DRMFrame_AddRotation(frame, D3DRMCOMBINE_REPLACE, 0.0f, 0.0f, 0.0f, M_PI_2);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirect3DRMFrame_GetTransform(frame, matrix);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
matrix_sanitise(matrix);
|
||||
expect_matrix(matrix,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.0f, -1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f, 1);
|
||||
|
||||
frame_set_transform(frame,
|
||||
2.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 4.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 8.0f, 0.0f,
|
||||
64.0f, 64.0f, 64.0f, 1.0f);
|
||||
hr = IDirect3DRM_CreateFrame(d3drm, frame, &subframe);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
frame_set_transform(subframe,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
11.0f, 11.0f, 11.0f, 1.0f);
|
||||
set_vector(&v1, 3.0f, 5.0f, 7.0f);
|
||||
|
||||
hr = IDirect3DRMFrame_Transform(frame, &v2, &v1);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_vector(&v2, 70.0f, 84.0f, 120.0f, 1);
|
||||
|
||||
hr = IDirect3DRMFrame_Transform(subframe, &v2, &v1);
|
||||
ok(hr == D3DRM_OK, "Got unexpected hr %#x.\n", hr);
|
||||
expect_vector(&v2, 92.0f, 128.0f, 208.0f, 1);
|
||||
|
||||
IDirect3DRMFrame_Release(subframe);
|
||||
IDirect3DRMFrame_Release(frame);
|
||||
IDirect3DRM_Release(d3drm);
|
||||
}
|
||||
|
@ -3268,7 +3828,7 @@ static void test_device_qi(void)
|
|||
ok(SUCCEEDED(hr), "Cannot get IDirect3DRM3 interface (hr = %x).\n", hr);
|
||||
hr = IDirect3DRM3_CreateDeviceFromClipper(d3drm3, clipper, &driver, rc.right, rc.bottom, &device3);
|
||||
ok(SUCCEEDED(hr), "Cannot get IDirect3DRMDevice3 interface (hr = %x)\n", hr);
|
||||
IDirect3DRMDevice3_QueryInterface(device3, &IID_IUnknown, (void **)&unknown);
|
||||
hr = IDirect3DRMDevice3_QueryInterface(device3, &IID_IUnknown, (void **)&unknown);
|
||||
ok(SUCCEEDED(hr), "Cannot get IUnknown interface from IDirect3DRMDevice3 (hr = %x)\n", hr);
|
||||
IDirect3DRMDevice3_Release(device3);
|
||||
test_qi("device3_qi", unknown, &IID_IUnknown, tests, ARRAY_SIZE(tests));
|
||||
|
@ -5370,6 +5930,68 @@ static void test_create_device_from_d3d3(void)
|
|||
DestroyWindow(window);
|
||||
}
|
||||
|
||||
static void test_create_device_1(void)
|
||||
{
|
||||
IDirect3DRM *d3drm = NULL;
|
||||
IDirect3DRMDevice *device = (IDirect3DRMDevice *)0xdeadbeef;
|
||||
HRESULT hr;
|
||||
|
||||
hr = Direct3DRMCreate(&d3drm);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x).\n", hr);
|
||||
|
||||
hr = IDirect3DRM_CreateDevice(d3drm, 640, 480, &device);
|
||||
ok(hr == D3DRMERR_BADDEVICE, "Expected hr == D3DRMERR_BADDEVICE, got %x.\n", hr);
|
||||
ok(device == NULL, "Expected device returned == NULL, got %p.\n", device);
|
||||
hr = IDirect3DRM_CreateDevice(d3drm, 640, 480, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %x.\n", hr);
|
||||
|
||||
IDirect3DRM_Release(d3drm);
|
||||
}
|
||||
|
||||
static void test_create_device_2(void)
|
||||
{
|
||||
IDirect3DRM *d3drm = NULL;
|
||||
IDirect3DRM2 *d3drm2 = NULL;
|
||||
IDirect3DRMDevice2 *device2 = (IDirect3DRMDevice2 *)0xdeadbeef;
|
||||
HRESULT hr;
|
||||
|
||||
hr = Direct3DRMCreate(&d3drm);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x).\n", hr);
|
||||
hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM2, (void **)&d3drm2);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRM3 interface (hr = %x).\n", hr);
|
||||
|
||||
hr = IDirect3DRM2_CreateDevice(d3drm2, 640, 480, &device2);
|
||||
ok(hr == D3DRMERR_BADDEVICE, "Expected hr == D3DRMERR_BADDEVICE, got %x.\n", hr);
|
||||
ok(device2 == NULL, "Expected device returned == NULL, got %p.\n", device2);
|
||||
hr = IDirect3DRM2_CreateDevice(d3drm2, 640, 480, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %x.\n", hr);
|
||||
|
||||
IDirect3DRM2_Release(d3drm2);
|
||||
IDirect3DRM_Release(d3drm);
|
||||
}
|
||||
|
||||
static void test_create_device_3(void)
|
||||
{
|
||||
IDirect3DRM *d3drm = NULL;
|
||||
IDirect3DRM3 *d3drm3 = NULL;
|
||||
IDirect3DRMDevice3 *device3 = (IDirect3DRMDevice3 *)0xdeadbeef;
|
||||
HRESULT hr;
|
||||
|
||||
hr = Direct3DRMCreate(&d3drm);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x).\n", hr);
|
||||
hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM3, (void **)&d3drm3);
|
||||
ok(hr == D3DRM_OK, "Cannot get IDirect3DRM3 interface (hr = %x).\n", hr);
|
||||
|
||||
hr = IDirect3DRM3_CreateDevice(d3drm3, 640, 480, &device3);
|
||||
ok(hr == D3DRMERR_BADDEVICE, "Expected hr == D3DRMERR_BADDEVICE, got %x.\n", hr);
|
||||
ok(device3 == NULL, "Expected device returned == NULL, got %p.\n", device3);
|
||||
hr = IDirect3DRM3_CreateDevice(d3drm3, 640, 480, NULL);
|
||||
ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %x.\n", hr);
|
||||
|
||||
IDirect3DRM3_Release(d3drm3);
|
||||
IDirect3DRM_Release(d3drm);
|
||||
}
|
||||
|
||||
static char *create_bitmap(unsigned int w, unsigned int h, BOOL palettized)
|
||||
{
|
||||
unsigned int bpp = palettized ? 8 : 24;
|
||||
|
@ -6342,10 +6964,12 @@ static void test_viewport_clear1(void)
|
|||
ret_color = IDirect3DRMFrame_GetSceneBackground(camera1);
|
||||
ok(ret_color == 0xff00ff00, "Expected scene color returned == 0xff00ff00, got %#x.\n", ret_color);
|
||||
|
||||
CHECK_REFCOUNT(frame1, 1);
|
||||
hr = IDirect3DRMViewport_Clear(viewport1);
|
||||
ok(SUCCEEDED(hr), "Cannot clear viewport (hr = %#x).\n", hr);
|
||||
ret_color = get_surface_color(surface, 320, 240);
|
||||
ok(compare_color(ret_color, 0x00ffffff, 1), "Got unexpected color 0x%08x.\n", ret_color);
|
||||
CHECK_REFCOUNT(frame1, 1);
|
||||
|
||||
hr = IDirect3DRMFrame_SetSceneBackgroundRGB(frame1, 0.0f, 0.0f, 1.0f);
|
||||
ok(SUCCEEDED(hr), "Cannot set scene background RGB (hr = %#x)\n", hr);
|
||||
|
@ -6545,10 +7169,12 @@ static void test_viewport_clear2(void)
|
|||
ret_color = IDirect3DRMFrame3_GetSceneBackground(camera3);
|
||||
ok(ret_color == 0xff00ff00, "Expected scene color returned == 0xff00ff00, got %#x.\n", ret_color);
|
||||
|
||||
CHECK_REFCOUNT(frame3, 1);
|
||||
hr = IDirect3DRMViewport2_Clear(viewport2, D3DRMCLEAR_ALL);
|
||||
ok(SUCCEEDED(hr), "Cannot clear viewport (hr = %#x).\n", hr);
|
||||
ret_color = get_surface_color(surface, 320, 240);
|
||||
ok(compare_color(ret_color, 0x00ffffff, 1), "Got unexpected color 0x%08x.\n", ret_color);
|
||||
CHECK_REFCOUNT(frame3, 1);
|
||||
|
||||
hr = IDirect3DRMViewport2_GetDirect3DViewport(viewport2, &d3d_viewport);
|
||||
ok(SUCCEEDED(hr), "Cannot get IDirect3DViewport interface (hr = %#x).\n", hr);
|
||||
|
@ -7432,6 +8058,9 @@ START_TEST(d3drm)
|
|||
test_create_device_from_d3d1();
|
||||
test_create_device_from_d3d2();
|
||||
test_create_device_from_d3d3();
|
||||
test_create_device_1();
|
||||
test_create_device_2();
|
||||
test_create_device_3();
|
||||
test_load_texture();
|
||||
test_texture_qi();
|
||||
test_viewport_qi();
|
||||
|
|
Loading…
Reference in a new issue