2012-12-24 10:20:23 -05:00
|
|
|
#include <windows.h>
|
2013-08-01 12:16:53 -04:00
|
|
|
#include "syslibs.h"
|
2012-12-24 10:20:23 -05:00
|
|
|
|
2013-01-19 11:16:54 -05:00
|
|
|
#define DDSQLEN 0x10
|
|
|
|
|
2012-12-24 10:20:23 -05:00
|
|
|
class dxwCore
|
|
|
|
{
|
|
|
|
// Construction/destruction
|
|
|
|
public:
|
|
|
|
dxwCore();
|
|
|
|
virtual ~dxwCore();
|
|
|
|
|
|
|
|
// Operations
|
2013-01-04 10:30:38 -05:00
|
|
|
public: // methods
|
2013-06-01 12:16:52 -04:00
|
|
|
void InitTarget(TARGETMAP *);
|
2013-01-04 10:30:38 -05:00
|
|
|
void SethWnd(HWND hwnd) {hWnd=hwnd;}
|
2013-01-19 11:16:54 -05:00
|
|
|
void InitWindowPos(int, int, int, int);
|
2013-01-04 10:30:38 -05:00
|
|
|
HWND GethWnd(void) {return hWnd;}
|
|
|
|
void SetScreenSize(void) {dwScreenWidth=800; dwScreenHeight=600;}
|
|
|
|
void SetScreenSize(int x, int y) {if(x)dwScreenWidth=x; if(y)dwScreenHeight=y;}
|
|
|
|
DWORD GetScreenWidth(void) {return dwScreenWidth;}
|
|
|
|
DWORD GetScreenHeight(void) {return dwScreenHeight;}
|
|
|
|
RECT GetScreenRect(void);
|
2013-06-01 12:16:52 -04:00
|
|
|
void MapRect(int *, int *, int *, int *);
|
2013-01-04 10:30:38 -05:00
|
|
|
void SetFullScreen(BOOL fs) {FullScreen=fs;}
|
|
|
|
BOOL IsFullScreen() {return FullScreen;}
|
2012-12-24 10:20:23 -05:00
|
|
|
POINT FixCursorPos(POINT);
|
2013-01-04 10:30:38 -05:00
|
|
|
POINT FixCursorPos(HWND, POINT);
|
|
|
|
void FixNCHITCursorPos(LPPOINT);
|
|
|
|
void SetClipCursor(void);
|
|
|
|
void EraseClipCursor(void);
|
|
|
|
RECT MapWindowRect(LPRECT lpRect);
|
|
|
|
RECT MapWindowRect(void);
|
2013-05-02 12:17:06 -04:00
|
|
|
void MapPoint(LPPOINT);
|
|
|
|
void UnmapPoint(LPPOINT);
|
2013-01-04 10:30:38 -05:00
|
|
|
void ScreenRefresh(void);
|
2013-01-19 11:16:54 -05:00
|
|
|
BOOL HandleFPS(void);
|
2013-08-01 12:16:53 -04:00
|
|
|
DWORD GetTickCount(void);
|
2013-01-19 11:16:54 -05:00
|
|
|
void MarkPrimarySurface(LPDIRECTDRAWSURFACE);
|
|
|
|
void UnmarkPrimarySurface(LPDIRECTDRAWSURFACE);
|
|
|
|
BOOL IsAPrimarySurface(LPDIRECTDRAWSURFACE);
|
|
|
|
LPDIRECTDRAWSURFACE GetPrimarySurface(void);
|
|
|
|
void SetPrimarySurface(void);
|
|
|
|
void ResetPrimarySurface(void);
|
|
|
|
void GetSystemTime(LPSYSTEMTIME lpSystemTime);
|
2013-01-25 11:17:02 -05:00
|
|
|
void GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime);
|
2013-01-19 11:16:54 -05:00
|
|
|
DWORD StretchTime(DWORD);
|
2013-01-22 11:17:01 -05:00
|
|
|
void ShowFPS(LPDIRECTDRAWSURFACE);
|
2013-01-25 11:17:02 -05:00
|
|
|
void ShowFPS(HDC);
|
2013-01-22 11:17:01 -05:00
|
|
|
char *GetTSCaption(int);
|
|
|
|
char *GetTSCaption(void);
|
2013-05-02 12:17:06 -04:00
|
|
|
void DoSlow(int);
|
2013-12-02 11:17:07 -05:00
|
|
|
void ShowBanner(HWND);
|
2013-04-04 12:17:08 -04:00
|
|
|
POINT ScreenToClient(POINT);
|
2013-01-04 10:30:38 -05:00
|
|
|
|
|
|
|
public: // simple data variables
|
|
|
|
DDPIXELFORMAT ActualPixelFormat;
|
|
|
|
DDPIXELFORMAT VirtualPixelFormat;
|
|
|
|
DWORD dwPrimarySurfaceCaps;
|
|
|
|
DWORD dwBackBufferCount;
|
|
|
|
DWORD dwDDVersion;
|
2013-06-01 12:16:52 -04:00
|
|
|
DWORD dwTargetDDVersion;
|
2013-01-04 10:30:38 -05:00
|
|
|
DWORD dwMaxDDVersion;
|
|
|
|
DWORD dwFlags1;
|
|
|
|
DWORD dwFlags2;
|
|
|
|
DWORD dwTFlags;
|
|
|
|
HWND hParentWnd;
|
|
|
|
HWND hChildWnd;
|
|
|
|
BOOL bActive;
|
|
|
|
BOOL bDInputAbs;
|
2013-06-01 12:16:52 -04:00
|
|
|
DWORD MaxFPS;
|
|
|
|
char *gsModules;
|
2013-08-01 12:16:53 -04:00
|
|
|
int TimeShift;
|
2013-01-19 11:16:54 -05:00
|
|
|
LPDIRECTDRAWSURFACE lpDDSPrimHDC;
|
|
|
|
short iPosX;
|
|
|
|
short iPosY;
|
|
|
|
short iSizX;
|
|
|
|
short iSizY;
|
|
|
|
//BOOL IsWithinDDraw; // flag to avoid double intervention at ddraw & GDI level
|
|
|
|
BOOL IsGDIPalette;
|
|
|
|
char *CustomOpenGLLib;
|
2013-01-25 11:17:02 -05:00
|
|
|
WORD palVersion;
|
|
|
|
WORD palNumEntries;
|
|
|
|
PALETTEENTRY palPalEntry[256];
|
2013-01-27 11:17:04 -05:00
|
|
|
short FakeVersionId;
|
2012-12-24 10:20:23 -05:00
|
|
|
|
|
|
|
// Implementation
|
|
|
|
protected:
|
2013-01-04 10:30:38 -05:00
|
|
|
DWORD dwScreenWidth;
|
|
|
|
DWORD dwScreenHeight;
|
|
|
|
BOOL FullScreen;
|
2012-12-24 10:20:23 -05:00
|
|
|
HWND hWnd;
|
2013-01-19 11:16:54 -05:00
|
|
|
DWORD PrimSurfaces[DDSQLEN+1];
|
2012-12-24 10:20:23 -05:00
|
|
|
};
|
2013-01-04 10:30:38 -05:00
|
|
|
|
|
|
|
extern dxwCore dxw;
|