1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

use LoadLibrary

This commit is contained in:
FunkyFr3sh 2021-02-03 20:50:14 +01:00
parent d8530d8cf6
commit 76891cb766
2 changed files with 13 additions and 5 deletions

View File

@ -33,6 +33,8 @@ typedef struct fps_limiter
D3DKMT_WAITFORVERTICALBLANKEVENT vblank_event; D3DKMT_WAITFORVERTICALBLANKEVENT vblank_event;
D3DKMT_OPENADAPTERFROMHDC adapter; D3DKMT_OPENADAPTERFROMHDC adapter;
D3DKMT_CLOSEADAPTER close_adapter; D3DKMT_CLOSEADAPTER close_adapter;
HMODULE gdi32_dll;
HMODULE dwmapi_dll;
HRESULT(WINAPI* DwmFlush)(VOID); HRESULT(WINAPI* DwmFlush)(VOID);
HRESULT(WINAPI* DwmIsCompositionEnabled)(BOOL*); HRESULT(WINAPI* DwmIsCompositionEnabled)(BOOL*);
NTSTATUS(WINAPI* D3DKMTWaitForVerticalBlankEvent)(const D3DKMT_WAITFORVERTICALBLANKEVENT* Arg1); NTSTATUS(WINAPI* D3DKMTWaitForVerticalBlankEvent)(const D3DKMT_WAITFORVERTICALBLANKEVENT* Arg1);

View File

@ -32,23 +32,29 @@ void fpsl_init()
g_fpsl.D3DKMTCloseAdapter(&g_fpsl.close_adapter); g_fpsl.D3DKMTCloseAdapter(&g_fpsl.close_adapter);
} }
if (!g_fpsl.gdi32_dll)
g_fpsl.gdi32_dll = LoadLibraryA("gdi32.dll");
if (!g_fpsl.dwmapi_dll)
g_fpsl.dwmapi_dll = LoadLibraryA("dwmapi.dll");
g_fpsl.DwmFlush = g_fpsl.DwmFlush =
(HRESULT(WINAPI*)(VOID))GetProcAddress(GetModuleHandleA("Dwmapi.dll"), "DwmFlush"); (HRESULT(WINAPI*)(VOID))GetProcAddress(g_fpsl.dwmapi_dll, "DwmFlush");
g_fpsl.DwmIsCompositionEnabled = g_fpsl.DwmIsCompositionEnabled =
(HRESULT(WINAPI*)(BOOL*))GetProcAddress(GetModuleHandleA("Dwmapi.dll"), "DwmIsCompositionEnabled"); (HRESULT(WINAPI*)(BOOL*))GetProcAddress(g_fpsl.dwmapi_dll, "DwmIsCompositionEnabled");
g_fpsl.D3DKMTWaitForVerticalBlankEvent = g_fpsl.D3DKMTWaitForVerticalBlankEvent =
(NTSTATUS(WINAPI*)(const D3DKMT_WAITFORVERTICALBLANKEVENT * Arg1)) (NTSTATUS(WINAPI*)(const D3DKMT_WAITFORVERTICALBLANKEVENT * Arg1))
GetProcAddress(GetModuleHandleA("gdi32.dll"), "D3DKMTWaitForVerticalBlankEvent"); GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTWaitForVerticalBlankEvent");
g_fpsl.D3DKMTOpenAdapterFromHdc = g_fpsl.D3DKMTOpenAdapterFromHdc =
(NTSTATUS(WINAPI*)(D3DKMT_OPENADAPTERFROMHDC * Arg1)) (NTSTATUS(WINAPI*)(D3DKMT_OPENADAPTERFROMHDC * Arg1))
GetProcAddress(GetModuleHandleA("gdi32.dll"), "D3DKMTOpenAdapterFromHdc"); GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTOpenAdapterFromHdc");
g_fpsl.D3DKMTCloseAdapter = g_fpsl.D3DKMTCloseAdapter =
(NTSTATUS(WINAPI*)(D3DKMT_CLOSEADAPTER * Arg1)) (NTSTATUS(WINAPI*)(D3DKMT_CLOSEADAPTER * Arg1))
GetProcAddress(GetModuleHandleA("gdi32.dll"), "D3DKMTCloseAdapter"); GetProcAddress(g_fpsl.gdi32_dll, "D3DKMTCloseAdapter");
} }
BOOL fpsl_wait_for_vblank() BOOL fpsl_wait_for_vblank()