1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

typedef functions

This commit is contained in:
FunkyFr3sh 2021-02-18 10:04:05 +01:00
parent a65e3d9365
commit 2fd2de207a
3 changed files with 29 additions and 15 deletions

View File

@ -22,6 +22,12 @@ typedef struct _D3DKMT_CLOSEADAPTER {
UINT hAdapter;
} D3DKMT_CLOSEADAPTER;
typedef HRESULT(WINAPI* DWMFLUSHPROC)(VOID);
typedef HRESULT(WINAPI* DWMISCOMPOSITIONENABLEDPROC)(BOOL*);
typedef NTSTATUS(WINAPI* D3DKMTWAITFORVERTICALBLANKEVENTPROC)(const D3DKMT_WAITFORVERTICALBLANKEVENT* Arg1);
typedef NTSTATUS(WINAPI* D3DKMTOPENADAPTERFROMHDCPROC)(D3DKMT_OPENADAPTERFROMHDC* Arg1);
typedef NTSTATUS(WINAPI* D3DKMTCLOSEADAPTERPROC)(D3DKMT_CLOSEADAPTER* Arg1);
typedef struct fps_limiter
{
DWORD tick_start;
@ -35,11 +41,11 @@ typedef struct fps_limiter
D3DKMT_CLOSEADAPTER close_adapter;
HMODULE gdi32_dll;
HMODULE dwmapi_dll;
HRESULT(WINAPI* DwmFlush)(VOID);
HRESULT(WINAPI* DwmIsCompositionEnabled)(BOOL*);
NTSTATUS(WINAPI* D3DKMTWaitForVerticalBlankEvent)(const D3DKMT_WAITFORVERTICALBLANKEVENT* Arg1);
NTSTATUS(WINAPI* D3DKMTOpenAdapterFromHdc)(D3DKMT_OPENADAPTERFROMHDC* Arg1);
NTSTATUS(WINAPI* D3DKMTCloseAdapter)(D3DKMT_CLOSEADAPTER* Arg1);
DWMFLUSHPROC DwmFlush;
DWMISCOMPOSITIONENABLEDPROC DwmIsCompositionEnabled;
D3DKMTWAITFORVERTICALBLANKEVENTPROC D3DKMTWaitForVerticalBlankEvent;
D3DKMTOPENADAPTERFROMHDCPROC D3DKMTOpenAdapterFromHdc;
D3DKMTCLOSEADAPTERPROC D3DKMTCloseAdapter;
BOOL got_adapter;
} fps_limiter;

View File

@ -39,22 +39,19 @@ void fpsl_init()
g_fpsl.dwmapi_dll = LoadLibraryA("dwmapi.dll");
g_fpsl.DwmFlush =
(HRESULT(WINAPI*)(VOID))GetProcAddress(g_fpsl.dwmapi_dll, "DwmFlush");
(DWMFLUSHPROC)GetProcAddress(g_fpsl.dwmapi_dll, "DwmFlush");
g_fpsl.DwmIsCompositionEnabled =
(HRESULT(WINAPI*)(BOOL*))GetProcAddress(g_fpsl.dwmapi_dll, "DwmIsCompositionEnabled");
(DWMISCOMPOSITIONENABLEDPROC)GetProcAddress(g_fpsl.dwmapi_dll, "DwmIsCompositionEnabled");
g_fpsl.D3DKMTWaitForVerticalBlankEvent =
(NTSTATUS(WINAPI*)(const D3DKMT_WAITFORVERTICALBLANKEVENT * Arg1))
GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTWaitForVerticalBlankEvent");
(D3DKMTWAITFORVERTICALBLANKEVENTPROC)GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTWaitForVerticalBlankEvent");
g_fpsl.D3DKMTOpenAdapterFromHdc =
(NTSTATUS(WINAPI*)(D3DKMT_OPENADAPTERFROMHDC * Arg1))
GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTOpenAdapterFromHdc");
(D3DKMTOPENADAPTERFROMHDCPROC)GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTOpenAdapterFromHdc");
g_fpsl.D3DKMTCloseAdapter =
(NTSTATUS(WINAPI*)(D3DKMT_CLOSEADAPTER * Arg1))
GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTCloseAdapter");
(D3DKMTCLOSEADAPTERPROC)GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTCloseAdapter");
}
BOOL fpsl_wait_for_vblank()

View File

@ -380,15 +380,26 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
case WM_NCMOUSELEAVE:
{
if (!g_ddraw->wine) /* hack: disable aero snap */
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, GetWindowLong(g_ddraw->hwnd, GWL_STYLE) | WS_MAXIMIZEBOX);
{
LONG style = GetWindowLong(g_ddraw->hwnd, GWL_STYLE);
if (!(style & WS_MAXIMIZEBOX))
{
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, style | WS_MAXIMIZEBOX);
}
}
break;
}
case WM_SYSCOMMAND:
if ((wParam & ~0x0F) == SC_MOVE && !g_ddraw->wine) /* hack: disable aero snap */
{
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, GetWindowLong(g_ddraw->hwnd, GWL_STYLE) & ~WS_MAXIMIZEBOX);
LONG style = GetWindowLong(g_ddraw->hwnd, GWL_STYLE);
if ((style & WS_MAXIMIZEBOX))
{
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, style & ~WS_MAXIMIZEBOX);
}
}
if (wParam == SC_MAXIMIZE)