make old windows xp workaround optional
This commit is contained in:
parent
93e81ddc1c
commit
6efc112c39
9 changed files with 97 additions and 72 deletions
|
@ -4,6 +4,7 @@
|
|||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include "IDirectDrawPalette.h"
|
||||
#include "IDirectDrawClipper.h"
|
||||
#include "ddraw.h"
|
||||
|
||||
|
||||
|
@ -22,7 +23,7 @@ typedef struct IDirectDrawSurfaceImpl
|
|||
DWORD flags;
|
||||
DWORD caps;
|
||||
|
||||
IDirectDrawPaletteImpl *palette;
|
||||
IDirectDrawPaletteImpl* palette;
|
||||
|
||||
void *surface;
|
||||
DWORD l_pitch;
|
||||
|
@ -35,7 +36,8 @@ typedef struct IDirectDrawSurfaceImpl
|
|||
DWORD last_flip_tick;
|
||||
DWORD last_blt_tick;
|
||||
|
||||
struct IDirectDrawSurfaceImpl *backbuffer;
|
||||
struct IDirectDrawSurfaceImpl* backbuffer;
|
||||
struct IDirectDrawClipperImpl* clipper;
|
||||
|
||||
} IDirectDrawSurfaceImpl;
|
||||
|
||||
|
|
10
inc/dd.h
10
inc/dd.h
|
@ -6,6 +6,8 @@
|
|||
#include "ddraw.h"
|
||||
|
||||
|
||||
typedef HRESULT(WINAPI* DIRECTDRAWCREATEPROC)(GUID FAR*, LPDIRECTDRAW FAR*, IUnknown FAR*);
|
||||
|
||||
ULONG dd_AddRef();
|
||||
ULONG dd_Release();
|
||||
HRESULT dd_EnumDisplayModes(DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback);
|
||||
|
@ -46,11 +48,11 @@ typedef struct cnc_ddraw
|
|||
DEVMODE mode;
|
||||
struct IDirectDrawSurfaceImpl *primary;
|
||||
char title[128];
|
||||
HMODULE real_dll;
|
||||
CRITICAL_SECTION cs;
|
||||
|
||||
/* real export from system32\ddraw.dll */
|
||||
HRESULT (WINAPI *DirectDrawCreate)(GUID FAR*, LPDIRECTDRAW FAR*, IUnknown FAR*);
|
||||
CRITICAL_SECTION cs;
|
||||
HMODULE real_dll;
|
||||
DIRECTDRAWCREATEPROC DirectDrawCreate;
|
||||
|
||||
struct
|
||||
{
|
||||
|
@ -102,11 +104,11 @@ typedef struct cnc_ddraw
|
|||
BOOL accurate_timers;
|
||||
BOOL resizable;
|
||||
BOOL sierrahack;
|
||||
BOOL dk2hack;
|
||||
BOOL nonexclusive;
|
||||
BOOL fixchildwindows;
|
||||
BOOL d3d9linear;
|
||||
BOOL backbuffer;
|
||||
BOOL passthrough;
|
||||
int maxgameticks;
|
||||
BOOL alt_key_down;
|
||||
BOOL bnet_active;
|
||||
|
|
|
@ -18,12 +18,14 @@ HRESULT dds_EnumAttachedSurfaces(IDirectDrawSurfaceImpl* This, LPVOID lpContext,
|
|||
HRESULT dds_Flip(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWSURFACE surface, DWORD flags);
|
||||
HRESULT dds_GetAttachedSurface(IDirectDrawSurfaceImpl* This, LPDDSCAPS lpDdsCaps, LPDIRECTDRAWSURFACE FAR* surface);
|
||||
HRESULT dds_GetCaps(IDirectDrawSurfaceImpl* This, LPDDSCAPS lpDDSCaps);
|
||||
HRESULT dds_GetClipper(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWCLIPPER FAR* lpClipper);
|
||||
HRESULT dds_GetColorKey(IDirectDrawSurfaceImpl* This, DWORD flags, LPDDCOLORKEY colorKey);
|
||||
HRESULT dds_GetDC(IDirectDrawSurfaceImpl* This, HDC FAR* a);
|
||||
HRESULT dds_GetDC(IDirectDrawSurfaceImpl* This, HDC FAR* lpHDC);
|
||||
HRESULT dds_GetPalette(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWPALETTE FAR* lplpDDPalette);
|
||||
HRESULT dds_GetPixelFormat(IDirectDrawSurfaceImpl* This, LPDDPIXELFORMAT ddpfPixelFormat);
|
||||
HRESULT dds_Lock(IDirectDrawSurfaceImpl* This, LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent);
|
||||
HRESULT dds_SetColorKey(IDirectDrawSurfaceImpl* This, DWORD flags, LPDDCOLORKEY colorKey);
|
||||
HRESULT dds_SetClipper(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWCLIPPER lpClipper);
|
||||
HRESULT dds_SetPalette(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWPALETTE lpDDPalette);
|
||||
HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPVOID lpRect);
|
||||
void* dds_GetBuffer(IDirectDrawSurfaceImpl* This);
|
||||
|
|
|
@ -8,6 +8,8 @@ extern BOOL GameHandlesClose;
|
|||
extern PVOID FakePrimarySurface;
|
||||
extern HMODULE g_ddraw_module;
|
||||
|
||||
HRESULT WINAPI DirectDrawCreateEx(GUID* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown* pUnkOuter);
|
||||
|
||||
typedef enum PROCESS_DPI_AWARENESS {
|
||||
PROCESS_DPI_UNAWARE = 0,
|
||||
PROCESS_SYSTEM_DPI_AWARE = 1,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue