Made d3drm use wine's implementation instead of loading dll at runtime.
On Tue, Mar 17, 2015 at 11:19 PM, Aaryaman Vasishta < jem456.vasishta@gmail.com> wrote:
dlls/d3drm/tests/Makefile.in | 2 +- dlls/d3drm/tests/d3drm.c | 132 +++++++++++++++++++++++++++---------------- 2 files changed, 84 insertions(+), 50 deletions(-)
diff --git a/dlls/d3drm/tests/Makefile.in b/dlls/d3drm/tests/Makefile.in index dc6e8d1..b5fdb56 100644 --- a/dlls/d3drm/tests/Makefile.in +++ b/dlls/d3drm/tests/Makefile.in @@ -1,5 +1,5 @@ TESTDLL = d3drm.dll -IMPORTS = dxguid ddraw user32 uuid +IMPORTS = d3drm dxguid ddraw user32 uuid
C_SRCS = \ d3drm.c \ diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c index f9925ae..edc451b 100644 --- a/dlls/d3drm/tests/d3drm.c +++ b/dlls/d3drm/tests/d3drm.c @@ -26,9 +26,6 @@
#include "wine/test.h"
-static HMODULE d3drm_handle = 0;
-static HRESULT (WINAPI * pDirect3DRMCreate)(IDirect3DRM **d3drm);
#define CHECK_REFCOUNT(obj,rc) \ { \ @@ -37,28 +34,6 @@ static HRESULT (WINAPI * pDirect3DRMCreate)(IDirect3DRM **d3drm); ok(count == rc_new, "Invalid refcount. Expected %d got %d\n", rc_new, count); \ }
-#define D3DRM_GET_PROC(func) \
- p ## func = (void*)GetProcAddress(d3drm_handle, #func); \
- if(!p ## func) { \
trace("GetProcAddress(%s) failed\n", #func); \
FreeLibrary(d3drm_handle); \
return FALSE; \
- }
-static BOOL InitFunctionPtrs(void) -{
- d3drm_handle = LoadLibraryA("d3drm.dll");
- if(!d3drm_handle)
- {
skip("Could not load d3drm.dll\n");
return FALSE;
- }
- D3DRM_GET_PROC(Direct3DRMCreate)
- return TRUE;
-}
static int get_refcount(IUnknown *object) { @@ -242,7 +217,7 @@ static void test_MeshBuilder(void) D3DCOLOR color; CHAR cname[64] = {0};
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = IDirect3DRM_CreateMeshBuilder(d3drm, &pMeshBuilder);
@@ -538,7 +513,7 @@ static void test_MeshBuilder3(void) DWORD size; CHAR cname[64] = {0};
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
if (FAILED(hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM3,
(void **)&d3drm3))) @@ -644,7 +619,7 @@ static void test_Mesh(void) DWORD size; CHAR cname[64] = {0};
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = IDirect3DRM_CreateMesh(d3drm, &mesh);
@@ -685,7 +660,7 @@ static void test_Face(void) CHAR cname[64] = {0}; int icount;
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = IDirect3DRM_CreateFace(d3drm, &face1);
@@ -925,7 +900,7 @@ static void test_Frame(void) DWORD count; CHAR cname[64] = {0};
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = IDirect3DRM_CreateFrame(d3drm, NULL, &pFrameC);
@@ -1257,7 +1232,7 @@ static void test_Viewport(void) window = CreateWindowA("static", "d3drm_test", WS_OVERLAPPEDWINDOW, 0, 0, 300, 200, 0, 0, 0, 0); GetClientRect(window, &rc);
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = DirectDrawCreateClipper(0, &pClipper, NULL);
@@ -1308,7 +1283,7 @@ static void test_Light(void) DWORD size; CHAR cname[64] = {0};
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = IDirect3DRM_CreateLightRGB(d3drm, D3DRMLIGHT_SPOT, 0.5, 0.5,
0.5, &light); @@ -1363,7 +1338,7 @@ static void test_Material2(void) DWORD size; CHAR cname[64] = {0};
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
if (FAILED(hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM3,
(void **)&d3drm3))) @@ -1447,7 +1422,7 @@ static void test_Texture(void) DWORD size; CHAR cname[64] = {0};
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
initimg.buffer1 = &pixel;
@@ -1488,7 +1463,7 @@ static void test_Device(void) window = CreateWindowA("static", "d3drm_test", WS_OVERLAPPEDWINDOW, 0, 0, 300, 200, 0, 0, 0, 0); GetClientRect(window, &rc);
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = DirectDrawCreateClipper(0, &pClipper, NULL);
@@ -1551,7 +1526,7 @@ static void test_frame_transform(void) IDirect3DRMFrame *frame; D3DRMMATRIX4D matrix;
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
hr = IDirect3DRM_CreateFrame(d3drm, NULL, &frame);
@@ -1589,7 +1564,7 @@ static void test_d3drm_load(void) D3DRMLOADMEMORY info; const GUID* req_refiids[] = { &IID_IDirect3DRMMeshBuilder, &IID_IDirect3DRMFrame, &IID_IDirect3DRMMaterial };
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
info.lpMemory = data_d3drm_load;
@@ -1665,7 +1640,7 @@ static void test_frame_mesh_materials(void) IDirect3DRMTexture *texture; int i;
- hr = pDirect3DRMCreate(&d3drm);
hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Direct3DRMCreate returned %x\n", hr);
info.lpMemory = data_frame_mesh_materials;
@@ -1736,7 +1711,7 @@ struct qi_test };
static void test_qi(const char *test_name, IUnknown *base_iface,
REFIID refcount_iid, const struct qi_test *tests,
UINT entry_count)
REFIID refcount_iid, const struct qi_test *tests, UINT
entry_count) { ULONG refcount, expected_refcount; IUnknown *iface1, *iface2; @@ -1788,15 +1763,79 @@ static void test_d3drm_qi(void) { static const struct qi_test tests[] = {
{ &IID_IDirect3DRM3, &IID_IDirect3DRM3, S_OK, TRUE },
{ &IID_IDirect3DRM2, &IID_IDirect3DRM2, S_OK, TRUE },
{ &IID_IDirect3DRM, &IID_IDirect3DRM, S_OK, FALSE },
{ &IID_IUnknown, &IID_IDirect3DRM, S_OK, FALSE },
{ &IID_IDirect3DRM3, &IID_IDirect3DRM3, S_OK, TRUE },
{ &IID_IDirect3DRM2, &IID_IDirect3DRM2, S_OK, TRUE },
{ &IID_IDirect3DRM, &IID_IDirect3DRM, S_OK, FALSE },
{ &IID_IDirect3DRMDevice, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMObject, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMObject2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMDevice2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMDevice3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMViewport, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMViewport2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMFrame, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMFrame2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMFrame3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMVisual, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMMesh, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMMeshBuilder, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMMeshBuilder2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMMeshBuilder3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMFace, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMFace2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMLight, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMTexture, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMTexture2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMTexture3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMWrap, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMMaterial, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMMaterial2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMAnimation, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMAnimation2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMAnimationSet, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMAnimationSet2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMObjectArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMDeviceArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMViewportArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMFrameArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMVisualArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMLightArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMPickedArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMFaceArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMAnimationArray, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMUserVisual, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMShadow, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMShadow2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMInterpolator, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMProgressiveMesh, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMPicked2Array, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DRMClippedVisual, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDrawClipper, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDrawSurface7, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDrawSurface4, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDrawSurface3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDrawSurface2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDrawSurface, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DDevice7, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DDevice3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DDevice2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DDevice, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3D7, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3D3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3D2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3D, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDraw7, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDraw4, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDraw3, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDraw2, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirectDraw, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
{ &IID_IDirect3DLight, NULL,
CLASS_E_CLASSNOTAVAILABLE, FALSE },
}; HRESULT hr; IDirect3DRM *d3drm;{ &IID_IUnknown, &IID_IDirect3DRM, S_OK, FALSE },
- hr = pDirect3DRMCreate(&d3drm);
- hr = Direct3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
test_qi("d3drm_qi", (IUnknown *)d3drm, &IID_IDirect3DRM, tests,
sizeof(tests) / sizeof(*tests)); @@ -1806,9 +1845,6 @@ static void test_d3drm_qi(void)
START_TEST(d3drm) {
- if (!InitFunctionPtrs())
return;
- test_MeshBuilder(); test_MeshBuilder3(); test_Mesh();
@@ -1823,6 +1859,4 @@ START_TEST(d3drm) test_d3drm_load(); test_frame_mesh_materials(); test_d3drm_qi();
- FreeLibrary(d3drm_handle);
}
1.9.3 (Apple Git-50)