diff --git a/main.c b/main.c index cfbb457..89da013 100644 --- a/main.c +++ b/main.c @@ -29,6 +29,7 @@ HRESULT ddraw_GetCaps(void *This, LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDEmulCaps if(lpDDDriverCaps) { lpDDDriverCaps->dwSize = sizeof(DDCAPS); + lpDDDriverCaps->dwCaps = DDCAPS_BLT|DDCAPS_PALETTE; lpDDDriverCaps->dwCKeyCaps = 0; lpDDDriverCaps->dwPalCaps = DDPCAPS_8BIT|DDPCAPS_PRIMARYSURFACE; lpDDDriverCaps->dwVidMemTotal = 16777216; diff --git a/surface.c b/surface.c index 2668e21..14cff6f 100644 --- a/surface.c +++ b/surface.c @@ -115,6 +115,12 @@ HRESULT ddraw_CreateSurface(void *_This, LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRE return DD_OK; } +HRESULT ddraw_surface_AddAttachedSurface(void *_This, LPDIRECTDRAWSURFACE lpDDSurface) +{ + printf("DirectDrawSurface::AddAttachedSurface(This=%p, lpDDSurface=%p)\n", _This, lpDDSurface); + return DD_OK; +} + HRESULT ddraw_surface_Blt(void *This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) { printf("DirectDrawSurface::Blt(This=%p, lpDestRect=%p, lpDDSrcSurface=%p, lpSrcRect=%p, dwFlags=%d, lpDDBltFx=%p)\n", This, lpDestRect, lpDDSrcSurface, lpSrcRect, (int)dwFlags, lpDDBltFx); @@ -187,7 +193,7 @@ fakeDirectDrawSurface siface = ddraw_surface_AddRef, ddraw_surface_Release, /* IDirectDrawSurface */ - null, // ddraw_surface_AddAttachedSurface + ddraw_surface_AddAttachedSurface, null, // ddraw_surface_AddOverlayDirtyRect ddraw_surface_Blt, null, // ddraw_surface_BltBatch diff --git a/surface.h b/surface.h index 443a101..8433533 100644 --- a/surface.h +++ b/surface.h @@ -65,9 +65,6 @@ typedef struct HRESULT (*UpdateOverlayZOrder)(void *, DWORD, LPDIRECTDRAWSURFACE); } fakeDirectDrawSurface; -/* -*/ - typedef struct { fakeDirectDrawSurface *Functions;