From 115fa35d5ab9e4f55a78bec3e905c70ea9618094 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Fri, 16 May 2025 15:32:39 +0200 Subject: [PATCH] Implement more D3DRM skeleton (#94) --- miniwin/miniwin/src/miniwin_d3drm.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/miniwin/miniwin/src/miniwin_d3drm.cpp b/miniwin/miniwin/src/miniwin_d3drm.cpp index 7a7eb589..867240ad 100644 --- a/miniwin/miniwin/src/miniwin_d3drm.cpp +++ b/miniwin/miniwin/src/miniwin_d3drm.cpp @@ -3,6 +3,21 @@ #include #include +struct Direct3DRMTextureImpl : public IDirect3DRMTexture2 { + HRESULT AddDestroyCallback(void (*cb)(IDirect3DRMObject*, void*), void* arg) override { return DD_OK; } + LPVOID GetAppData() override { return m_data; } + HRESULT SetAppData(LPD3DRM_APPDATA appData) override + { + m_data = appData; + return DD_OK; + } + HRESULT SetTexture(const IDirect3DRMTexture* texture) override { return DD_OK; } + HRESULT Changed(BOOL arg1, BOOL arg2) override { return DD_OK; } + +private: + LPD3DRM_APPDATA m_data; +}; + struct Direct3DRMDevice2Impl : public IDirect3DRMDevice2 { unsigned long GetWidth() override { return 640; } unsigned long GetHeight() override { return 480; } @@ -191,17 +206,17 @@ struct Direct3DRMImpl : public IDirect3DRM2 { } HRESULT CreateTexture(D3DRMIMAGE* image, IDirect3DRMTexture2** outTexture) override { - assert(false && "unimplemented"); + *outTexture = static_cast(new Direct3DRMTextureImpl); return DDERR_GENERIC; } HRESULT CreateTextureFromSurface(LPDIRECTDRAWSURFACE surface, IDirect3DRMTexture2** outTexture) override { - assert(false && "unimplemented"); + *outTexture = static_cast(new Direct3DRMTextureImpl); return DDERR_GENERIC; } HRESULT CreateMesh(IDirect3DRMMesh** outMesh) override { - assert(false && "unimplemented"); + // TODO return DDERR_GENERIC; } HRESULT CreateMaterial(D3DVAL power, IDirect3DRMMaterial** outMaterial) override