[PATCH 2/2] d3drm/tests: Add more interfaces for d3drm1_QueryInterface and remove dependency on InitFunctionPtrs().

Aaryaman Vasishta jem456.vasishta at gmail.com
Tue Mar 17 12:57:13 CDT 2015


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 at 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 },
> +        { &IID_IUnknown,                   &IID_IDirect3DRM,       S_OK,
>                           FALSE },
>      };
>      HRESULT hr;
>      IDirect3DRM *d3drm;
>
> -    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)
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20150317/38acc2e4/attachment-0001.html>


More information about the wine-devel mailing list