Pass the image data to the textures (#202)

This commit is contained in:
Anders Jenbo 2025-05-30 17:41:06 +02:00 committed by GitHub
parent bcd0021bb1
commit 341d06f997
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 4 deletions

View File

@ -152,16 +152,14 @@ HRESULT Direct3DRMImpl::CreateDeviceFromSurface(
HRESULT Direct3DRMImpl::CreateTexture(D3DRMIMAGE* image, IDirect3DRMTexture2** outTexture)
{
MINIWIN_NOT_IMPLEMENTED();
*outTexture = static_cast<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl);
*outTexture = static_cast<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl(image));
return DD_OK;
}
HRESULT Direct3DRMImpl::CreateTextureFromSurface(LPDIRECTDRAWSURFACE surface, IDirect3DRMTexture2** outTexture)
{
MINIWIN_NOT_IMPLEMENTED();
*outTexture = static_cast<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl);
*outTexture = static_cast<IDirect3DRMTexture2*>(new Direct3DRMTextureImpl(surface));
return DD_OK;
}

View File

@ -1,6 +1,16 @@
#include "d3drmtexture_impl.h"
#include "miniwin.h"
Direct3DRMTextureImpl::Direct3DRMTextureImpl(D3DRMIMAGE* image)
{
MINIWIN_NOT_IMPLEMENTED();
}
Direct3DRMTextureImpl::Direct3DRMTextureImpl(IDirectDrawSurface* surface) : m_surface(surface)
{
MINIWIN_NOT_IMPLEMENTED();
}
HRESULT Direct3DRMTextureImpl::QueryInterface(const GUID& riid, void** ppvObject)
{
if (SDL_memcmp(&riid, &IID_IDirect3DRMTexture2, sizeof(GUID)) == 0) {
@ -14,6 +24,9 @@ HRESULT Direct3DRMTextureImpl::QueryInterface(const GUID& riid, void** ppvObject
HRESULT Direct3DRMTextureImpl::Changed(BOOL pixels, BOOL palette)
{
if (!m_surface) {
return DDERR_GENERIC;
}
MINIWIN_NOT_IMPLEMENTED();
return DD_OK;
}

View File

@ -3,6 +3,11 @@
#include "d3drmobject_impl.h"
struct Direct3DRMTextureImpl : public Direct3DRMObjectBaseImpl<IDirect3DRMTexture2> {
Direct3DRMTextureImpl(D3DRMIMAGE* image);
Direct3DRMTextureImpl(IDirectDrawSurface* surface);
HRESULT QueryInterface(const GUID& riid, void** ppvObject) override;
HRESULT Changed(BOOL pixels, BOOL palette) override;
private:
IDirectDrawSurface* m_surface = nullptr;
};