mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
add hooks to fix blurry fonts
This commit is contained in:
parent
5a76fc8f9f
commit
77bd7aa3bb
@ -49,6 +49,8 @@ typedef BOOL(WINAPI* PEEKMESSAGEAPROC)(LPMSG, HWND, UINT, UINT, UINT);
|
|||||||
|
|
||||||
|
|
||||||
typedef int (WINAPI* GETDEVICECAPSPROC)(HDC, int);
|
typedef int (WINAPI* GETDEVICECAPSPROC)(HDC, int);
|
||||||
|
typedef HFONT(WINAPI* CREATEFONTINDIRECTAPROC)(CONST LOGFONT*);
|
||||||
|
typedef HFONT(WINAPI* CREATEFONTAPROC)(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCTSTR);
|
||||||
typedef HMODULE(WINAPI* LOADLIBRARYAPROC)(LPCSTR);
|
typedef HMODULE(WINAPI* LOADLIBRARYAPROC)(LPCSTR);
|
||||||
typedef HMODULE(WINAPI* LOADLIBRARYWPROC)(LPCWSTR);
|
typedef HMODULE(WINAPI* LOADLIBRARYWPROC)(LPCWSTR);
|
||||||
typedef HMODULE(WINAPI* LOADLIBRARYEXAPROC)(LPCSTR, HANDLE, DWORD);
|
typedef HMODULE(WINAPI* LOADLIBRARYEXAPROC)(LPCSTR, HANDLE, DWORD);
|
||||||
@ -90,6 +92,8 @@ extern SETFOREGROUNDWINDOWPROC real_SetForegroundWindow;
|
|||||||
extern SETWINDOWSHOOKEXAPROC real_SetWindowsHookExA;
|
extern SETWINDOWSHOOKEXAPROC real_SetWindowsHookExA;
|
||||||
extern PEEKMESSAGEAPROC real_PeekMessageA;
|
extern PEEKMESSAGEAPROC real_PeekMessageA;
|
||||||
extern GETDEVICECAPSPROC real_GetDeviceCaps;
|
extern GETDEVICECAPSPROC real_GetDeviceCaps;
|
||||||
|
extern CREATEFONTINDIRECTAPROC real_CreateFontIndirectA;
|
||||||
|
extern CREATEFONTAPROC real_CreateFontA;
|
||||||
extern LOADLIBRARYAPROC real_LoadLibraryA;
|
extern LOADLIBRARYAPROC real_LoadLibraryA;
|
||||||
extern LOADLIBRARYWPROC real_LoadLibraryW;
|
extern LOADLIBRARYWPROC real_LoadLibraryW;
|
||||||
extern LOADLIBRARYEXAPROC real_LoadLibraryExA;
|
extern LOADLIBRARYEXAPROC real_LoadLibraryExA;
|
||||||
|
@ -43,6 +43,9 @@ int WINAPI fake_SetDIBitsToDevice(
|
|||||||
int WINAPI fake_StretchDIBits(
|
int WINAPI fake_StretchDIBits(
|
||||||
HDC, int, int, int, int, int, int, int, int, const VOID*, const BITMAPINFO*, UINT, DWORD);
|
HDC, int, int, int, int, int, int, int, int, const VOID*, const BITMAPINFO*, UINT, DWORD);
|
||||||
|
|
||||||
|
HFONT WINAPI fake_CreateFontIndirectA(CONST LOGFONTA*);
|
||||||
|
HFONT WINAPI fake_CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCTSTR);
|
||||||
|
|
||||||
HMODULE WINAPI fake_LoadLibraryA(LPCSTR lpLibFileName);
|
HMODULE WINAPI fake_LoadLibraryA(LPCSTR lpLibFileName);
|
||||||
HMODULE WINAPI fake_LoadLibraryW(LPCWSTR lpLibFileName);
|
HMODULE WINAPI fake_LoadLibraryW(LPCWSTR lpLibFileName);
|
||||||
HMODULE WINAPI fake_LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
|
HMODULE WINAPI fake_LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
|
||||||
|
@ -367,6 +367,7 @@ static void cfg_create_ini()
|
|||||||
"rgb555=false\n"
|
"rgb555=false\n"
|
||||||
"no_dinput_hook=false\n"
|
"no_dinput_hook=false\n"
|
||||||
"refresh_rate=0\n"
|
"refresh_rate=0\n"
|
||||||
|
"non_anti_aliased_fonts=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -49,6 +49,8 @@ SETFOREGROUNDWINDOWPROC real_SetForegroundWindow = SetForegroundWindow;
|
|||||||
SETWINDOWSHOOKEXAPROC real_SetWindowsHookExA = SetWindowsHookExA;
|
SETWINDOWSHOOKEXAPROC real_SetWindowsHookExA = SetWindowsHookExA;
|
||||||
PEEKMESSAGEAPROC real_PeekMessageA = PeekMessageA;
|
PEEKMESSAGEAPROC real_PeekMessageA = PeekMessageA;
|
||||||
GETDEVICECAPSPROC real_GetDeviceCaps = GetDeviceCaps;
|
GETDEVICECAPSPROC real_GetDeviceCaps = GetDeviceCaps;
|
||||||
|
CREATEFONTINDIRECTAPROC real_CreateFontIndirectA = CreateFontIndirectA;
|
||||||
|
CREATEFONTAPROC real_CreateFontA = CreateFontA;
|
||||||
LOADLIBRARYAPROC real_LoadLibraryA = LoadLibraryA;
|
LOADLIBRARYAPROC real_LoadLibraryA = LoadLibraryA;
|
||||||
LOADLIBRARYWPROC real_LoadLibraryW = LoadLibraryW;
|
LOADLIBRARYWPROC real_LoadLibraryW = LoadLibraryW;
|
||||||
LOADLIBRARYEXAPROC real_LoadLibraryExA = LoadLibraryExA;
|
LOADLIBRARYEXAPROC real_LoadLibraryExA = LoadLibraryExA;
|
||||||
@ -124,6 +126,9 @@ HOOKLIST g_hook_hooklist[] =
|
|||||||
{ "SetDIBitsToDevice", (PROC)fake_SetDIBitsToDevice, (PROC*)&real_SetDIBitsToDevice, SKIP_HOOK2 },
|
{ "SetDIBitsToDevice", (PROC)fake_SetDIBitsToDevice, (PROC*)&real_SetDIBitsToDevice, SKIP_HOOK2 },
|
||||||
{ "StretchDIBits", (PROC)fake_StretchDIBits, (PROC*)&real_StretchDIBits, SKIP_HOOK2 },
|
{ "StretchDIBits", (PROC)fake_StretchDIBits, (PROC*)&real_StretchDIBits, SKIP_HOOK2 },
|
||||||
{ "GetDeviceCaps", (PROC)fake_GetDeviceCaps, (PROC*)&real_GetDeviceCaps, 0 },
|
{ "GetDeviceCaps", (PROC)fake_GetDeviceCaps, (PROC*)&real_GetDeviceCaps, 0 },
|
||||||
|
{ "GetDeviceCaps", (PROC)fake_GetDeviceCaps, (PROC*)&real_GetDeviceCaps, 0 },
|
||||||
|
{ "CreateFontA", (PROC)fake_CreateFontA, (PROC*)&real_CreateFontA, 0 },
|
||||||
|
{ "CreateFontIndirectA", (PROC)fake_CreateFontIndirectA, (PROC*)&real_CreateFontIndirectA, 0 },
|
||||||
{ "", NULL, NULL, 0 }
|
{ "", NULL, NULL, 0 }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -905,6 +905,54 @@ int WINAPI fake_StretchDIBits(
|
|||||||
rop);
|
rop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HFONT WINAPI fake_CreateFontIndirectA(CONST LOGFONTA* lplf)
|
||||||
|
{
|
||||||
|
LOGFONTA lf;
|
||||||
|
memcpy(&lf, lplf, sizeof(lf));
|
||||||
|
|
||||||
|
if (cfg_get_bool("non_anti_aliased_fonts", TRUE))
|
||||||
|
lf.lfQuality = NONANTIALIASED_QUALITY;
|
||||||
|
|
||||||
|
return real_CreateFontIndirectA(&lf);
|
||||||
|
}
|
||||||
|
|
||||||
|
HFONT WINAPI fake_CreateFontA(
|
||||||
|
int nHeight,
|
||||||
|
int nWidth,
|
||||||
|
int nEscapement,
|
||||||
|
int nOrientation,
|
||||||
|
int fnWeight,
|
||||||
|
DWORD fdwItalic,
|
||||||
|
DWORD fdwUnderline,
|
||||||
|
DWORD fdwStrikeOut,
|
||||||
|
DWORD fdwCharSet,
|
||||||
|
DWORD fdwOutputPrecision,
|
||||||
|
DWORD fdwClipPrecision,
|
||||||
|
DWORD fdwQuality,
|
||||||
|
DWORD fdwPitchAndFamily,
|
||||||
|
LPCTSTR lpszFace)
|
||||||
|
{
|
||||||
|
if (cfg_get_bool("non_anti_aliased_fonts", TRUE))
|
||||||
|
fdwQuality = NONANTIALIASED_QUALITY;
|
||||||
|
|
||||||
|
return
|
||||||
|
real_CreateFontA(
|
||||||
|
nHeight,
|
||||||
|
nWidth,
|
||||||
|
nEscapement,
|
||||||
|
nOrientation,
|
||||||
|
fnWeight,
|
||||||
|
fdwItalic,
|
||||||
|
fdwUnderline,
|
||||||
|
fdwStrikeOut,
|
||||||
|
fdwCharSet,
|
||||||
|
fdwOutputPrecision,
|
||||||
|
fdwClipPrecision,
|
||||||
|
fdwQuality,
|
||||||
|
fdwPitchAndFamily,
|
||||||
|
lpszFace);
|
||||||
|
}
|
||||||
|
|
||||||
HMODULE WINAPI fake_LoadLibraryA(LPCSTR lpLibFileName)
|
HMODULE WINAPI fake_LoadLibraryA(LPCSTR lpLibFileName)
|
||||||
{
|
{
|
||||||
HMODULE hmod = real_LoadLibraryA(lpLibFileName);
|
HMODULE hmod = real_LoadLibraryA(lpLibFileName);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user