d3drm: Implement GetDirect3DDevice2.
Aaryaman Vasishta
jem456.vasishta at gmail.com
Tue Aug 18 08:53:53 CDT 2015
---
dlls/d3drm/device.c | 16 ++++++++++++----
dlls/d3drm/tests/d3drm.c | 8 ++++----
2 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/dlls/d3drm/device.c b/dlls/d3drm/device.c
index b096798..b703077 100644
--- a/dlls/d3drm/device.c
+++ b/dlls/d3drm/device.c
@@ -814,9 +814,13 @@ static DWORD WINAPI d3drm_device2_GetRenderMode(IDirect3DRMDevice2 *iface)
static HRESULT WINAPI d3drm_device2_GetDirect3DDevice2(IDirect3DRMDevice2 *iface, IDirect3DDevice2 **d3d_device)
{
- FIXME("iface %p, d3d_device %p stub!\n", iface, d3d_device);
+ TRACE("iface %p, d3d_device %p.\n", iface, d3d_device);
+ struct d3drm_device *device = impl_from_IDirect3DRMDevice2(iface);
- return E_NOTIMPL;
+ if (device->device)
+ return IDirect3DDevice_QueryInterface(device->device, &IID_IDirect3DDevice2, (void**)d3d_device);
+ else
+ return E_NOTIMPL;
}
static const struct IDirect3DRMDevice2Vtbl d3drm_device2_vtbl =
@@ -1179,9 +1183,13 @@ static DWORD WINAPI d3drm_device3_GetRenderMode(IDirect3DRMDevice3 *iface)
static HRESULT WINAPI d3drm_device3_GetDirect3DDevice2(IDirect3DRMDevice3 *iface, IDirect3DDevice2 **d3d_device)
{
- FIXME("iface %p, d3d_device %p stub!\n", iface, d3d_device);
+ TRACE("iface %p, d3d_device %p.\n", iface, d3d_device);
+ struct d3drm_device *device = impl_from_IDirect3DRMDevice3(iface);
- return E_NOTIMPL;
+ if (device->device)
+ return IDirect3DDevice_QueryInterface(device->device, &IID_IDirect3DDevice2, (void**)d3d_device);
+ else
+ return E_NOTIMPL;
}
static HRESULT WINAPI d3drm_device3_FindPreferredTextureFormat(IDirect3DRMDevice3 *iface,
diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c
index ea1e08f..959dbc3 100644
--- a/dlls/d3drm/tests/d3drm.c
+++ b/dlls/d3drm/tests/d3drm.c
@@ -2191,7 +2191,7 @@ static void test_create_device_from_clipper2(void)
/* Fetch immediate mode device in order to access render target */
hr = IDirect3DRMDevice2_GetDirect3DDevice2(device2, &d3ddevice2);
- todo_wine ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
+ ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
if (FAILED(hr))
goto cleanup;
@@ -2288,7 +2288,7 @@ static void test_create_device_from_clipper2(void)
ok(hr == D3DRM_OK, "Cannot create IDirect3DRMDevice2 interface (hr = %x).\n", hr);
hr = IDirect3DRMDevice2_GetDirect3DDevice2(device2, &d3ddevice2);
- todo_wine ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
+ ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
if (FAILED(hr))
goto cleanup;
@@ -2378,7 +2378,7 @@ static void test_create_device_from_clipper3(void)
/* Fetch immediate mode device in order to access render target */
hr = IDirect3DRMDevice3_GetDirect3DDevice2(device3, &d3ddevice2);
- todo_wine ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
+ ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
if (FAILED(hr))
goto cleanup;
@@ -2475,7 +2475,7 @@ static void test_create_device_from_clipper3(void)
ok(hr == D3DRM_OK, "Cannot create IDirect3DRMDevice3 interface (hr = %x).\n", hr);
hr = IDirect3DRMDevice3_GetDirect3DDevice2(device3, &d3ddevice2);
- todo_wine ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
+ ok(hr == D3DRM_OK, "Cannot get IDirect3DDevice2 interface (hr = %x).\n", hr);
if (FAILED(hr))
goto cleanup;
--
2.3.2 (Apple Git-55)
More information about the wine-patches
mailing list