refactoring
This commit is contained in:
parent
95afd87656
commit
baaa87b18f
62 changed files with 7231 additions and 6636 deletions
118
inc/dd.h
Normal file
118
inc/dd.h
Normal file
|
@ -0,0 +1,118 @@
|
|||
#ifndef DD_H
|
||||
#define DD_H
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include "ddraw.h"
|
||||
|
||||
|
||||
ULONG dd_AddRef();
|
||||
ULONG dd_Release();
|
||||
HRESULT dd_EnumDisplayModes(DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback);
|
||||
HRESULT dd_WaitForVerticalBlank(DWORD dwFlags, HANDLE h);
|
||||
HRESULT dd_SetDisplayMode(DWORD width, DWORD height, DWORD bpp);
|
||||
HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags);
|
||||
HRESULT dd_RestoreDisplayMode();
|
||||
HRESULT dd_GetCaps(LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDEmulCaps);
|
||||
HRESULT dd_GetAvailableVidMem(void* lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree);
|
||||
HRESULT dd_GetVerticalBlankStatus(LPBOOL lpbIsInVB);
|
||||
|
||||
typedef struct speed_limiter
|
||||
{
|
||||
DWORD tick_length;
|
||||
LONGLONG tick_length_ns;
|
||||
HANDLE htimer;
|
||||
LARGE_INTEGER due_time;
|
||||
BOOL use_blt_or_flip;
|
||||
} speed_limiter;
|
||||
|
||||
struct IDirectDrawSurfaceImpl;
|
||||
|
||||
extern struct cnc_ddraw *g_ddraw;
|
||||
|
||||
typedef struct cnc_ddraw
|
||||
{
|
||||
ULONG ref;
|
||||
|
||||
DWORD width;
|
||||
DWORD height;
|
||||
DWORD bpp;
|
||||
BOOL windowed;
|
||||
BOOL border;
|
||||
BOOL boxing;
|
||||
DEVMODE mode;
|
||||
struct IDirectDrawSurfaceImpl *primary;
|
||||
char title[128];
|
||||
HMODULE real_dll;
|
||||
|
||||
/* real export from system32\ddraw.dll */
|
||||
HRESULT (WINAPI *DirectDrawCreate)(GUID FAR*, LPDIRECTDRAW FAR*, IUnknown FAR*);
|
||||
CRITICAL_SECTION cs;
|
||||
|
||||
struct
|
||||
{
|
||||
int maxfps;
|
||||
BOOL forcefps;
|
||||
int width;
|
||||
int height;
|
||||
int bpp;
|
||||
|
||||
HDC hdc;
|
||||
int *tex;
|
||||
|
||||
HANDLE thread;
|
||||
BOOL run;
|
||||
HANDLE sem;
|
||||
DEVMODE mode;
|
||||
struct { int width; int height; int x; int y; } viewport;
|
||||
|
||||
LONG palette_updated;
|
||||
LONG surface_updated;
|
||||
|
||||
float scale_w;
|
||||
float scale_h;
|
||||
float unscale_w;
|
||||
float unscale_h;
|
||||
} render;
|
||||
|
||||
HWND hwnd;
|
||||
LRESULT (CALLBACK *wndproc)(HWND, UINT, WPARAM, LPARAM);
|
||||
struct { float x; float y; } cursor;
|
||||
BOOL locked;
|
||||
BOOL adjmouse;
|
||||
BOOL devmode;
|
||||
BOOL vsync;
|
||||
BOOL vhack;
|
||||
BOOL isredalert;
|
||||
BOOL iscnc1;
|
||||
LONG incutscene;
|
||||
DWORD (WINAPI *renderer)(void);
|
||||
BOOL fullscreen;
|
||||
BOOL maintas;
|
||||
BOOL noactivateapp;
|
||||
BOOL handlemouse;
|
||||
char shader[MAX_PATH];
|
||||
BOOL wine;
|
||||
BOOL altenter;
|
||||
BOOL hidecursor;
|
||||
BOOL accurate_timers;
|
||||
BOOL resizable;
|
||||
BOOL sierrahack;
|
||||
BOOL nonexclusive;
|
||||
BOOL bnet_active;
|
||||
BOOL bnet_was_fullscreen;
|
||||
BOOL bnet_was_upscaled;
|
||||
RECT bnet_win_rect;
|
||||
POINT bnet_pos;
|
||||
int mouse_y_adjust;
|
||||
void* last_freed_palette; // Dungeon Keeper hack
|
||||
BOOL child_window_exists;
|
||||
DWORD last_set_window_pos_tick; // WINE hack
|
||||
BOOL show_driver_warning;
|
||||
speed_limiter ticks_limiter;
|
||||
speed_limiter flip_limiter;
|
||||
speed_limiter fps_limiter;
|
||||
|
||||
} cnc_ddraw;
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue