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 <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 {
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<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl);
return DDERR_GENERIC;
}
HRESULT CreateTextureFromSurface(LPDIRECTDRAWSURFACE surface, IDirect3DRMTexture2** outTexture) override
{
assert(false && "unimplemented");
*outTexture = static_cast<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl);
return DDERR_GENERIC;
}
HRESULT CreateMesh(IDirect3DRMMesh** outMesh) override
{
assert(false && "unimplemented");
// TODO
return DDERR_GENERIC;
}
HRESULT CreateMaterial(D3DVAL power, IDirect3DRMMaterial** outMaterial) override