Implement more D3DRM skeleton (#94)

This commit is contained in:
Anders Jenbo 2025-05-16 15:32:39 +02:00 committed by GitHub
parent 4ccd2501d0
commit 115fa35d5a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,6 +3,21 @@
#include <SDL3/SDL.h> #include <SDL3/SDL.h>
#include <assert.h> #include <assert.h>
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 { struct Direct3DRMDevice2Impl : public IDirect3DRMDevice2 {
unsigned long GetWidth() override { return 640; } unsigned long GetWidth() override { return 640; }
unsigned long GetHeight() override { return 480; } unsigned long GetHeight() override { return 480; }
@ -191,17 +206,17 @@ struct Direct3DRMImpl : public IDirect3DRM2 {
} }
HRESULT CreateTexture(D3DRMIMAGE* image, IDirect3DRMTexture2** outTexture) override HRESULT CreateTexture(D3DRMIMAGE* image, IDirect3DRMTexture2** outTexture) override
{ {
assert(false && "unimplemented"); *outTexture = static_cast<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl);
return DDERR_GENERIC; return DDERR_GENERIC;
} }
HRESULT CreateTextureFromSurface(LPDIRECTDRAWSURFACE surface, IDirect3DRMTexture2** outTexture) override HRESULT CreateTextureFromSurface(LPDIRECTDRAWSURFACE surface, IDirect3DRMTexture2** outTexture) override
{ {
assert(false && "unimplemented"); *outTexture = static_cast<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl);
return DDERR_GENERIC; return DDERR_GENERIC;
} }
HRESULT CreateMesh(IDirect3DRMMesh** outMesh) override HRESULT CreateMesh(IDirect3DRMMesh** outMesh) override
{ {
assert(false && "unimplemented"); // TODO
return DDERR_GENERIC; return DDERR_GENERIC;
} }
HRESULT CreateMaterial(D3DVAL power, IDirect3DRMMaterial** outMaterial) override HRESULT CreateMaterial(D3DVAL power, IDirect3DRMMaterial** outMaterial) override