#include "ssdx.h"
#include "errors.h"
#include "harness/hooks.h"
int gSSDX_windowed;
void* gSSDX_hwnd;
int SSDXStart(void* hWnd, int windowed, int flags) {
int res = 0;
dr_dprintf("SSDXStart(): START...");
if (windowed) {
gSSDX_windowed = 1;
}
gSSDX_hwnd = hWnd;
// Not required
// if ((flags & 1) != 0) {
// dr_dprintf("Calling DirectDrawCreate()...");
// res = DirectDrawCreate(0, &gDirect_draw, 0);
// if (!res) {
// dr_dprintf("Calling SetCooperativeLevel()...");
// if (gSSDX_windowed) {
// res = gDirect_draw->lpVtbl->SetCooperativeLevel(gDirect_draw, gSSDX_hwnd, 8);
// } else {
// res = gDirect_draw->lpVtbl->SetCooperativeLevel(gDirect_draw, gSSDX_hwnd, 83);
// }
// }
// }
// if (!res && (flags & 2) != 0) {
// dr_dprintf("Calling DirectSoundCreate()...");
// res = DirectSoundCreate(0, &gDirect_sound, 0);
// }
// if (res) {
// SSDXHandleError(res);
// }
dr_dprintf("SSDXStart(): END.");
return res;
}
int SSDXInitDirectDraw(int width, int height, int* row_bytes) {
DirectDraw_CreateSurface(width, height);
*row_bytes = width;
return 0;
}
void SSDXRelease(void) {}
void SSDXGetWindowRect(void* hWnd) {
// none of this is required
// GetClientRect(hWnd, &gSSDX_rect);
// ClientToScreen(hWnd, (LPPOINT)&gSSDX_rect);
// ClientToScreen(hWnd, (LPPOINT)&gSSDX_rect.right);
// dr_dprintf("New window rect: (%d,%d)(%d,%d)", gSSDX_rect.left, gSSDX_rect.top, gSSDX_rect.right, gSSDX_rect.bottom);
}
void SSDXHandleError(int error) {
// no-op
}
void SSDXSetPaleeteEntries(PALETTEENTRY_* palette, int pFirst_color, int pCount) {
DirectDrawDevice_SetPaletteEntries(palette, pFirst_color, pCount);
}