1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

Renamed the namespace, functions and macros in CompatGdiDcFunctions

This commit is contained in:
narzoul 2016-03-19 13:22:30 +01:00
parent ffc74aeb26
commit 27eec14ee1
3 changed files with 79 additions and 79 deletions

View File

@ -284,7 +284,7 @@ namespace CompatGdi
return;
}
CompatGdiFunctions::installHooks();
CompatGdiDcFunctions::installHooks();
CompatGdiWinProc::installHooks();
CompatGdiCaret::installHooks();
}

View File

@ -56,7 +56,7 @@ namespace
}
template <typename OrigFuncPtr, OrigFuncPtr origFunc, typename Result, typename... Params>
Result WINAPI compatGdiFunc(Params... params)
Result WINAPI compatGdiDcFunc(Params... params)
{
#ifdef _DEBUG
Compat::LogEnter(CompatGdi::g_funcNames[origFunc], params...);
@ -97,9 +97,9 @@ namespace
}
template <typename OrigFuncPtr, OrigFuncPtr origFunc, typename Result, typename... Params>
OrigFuncPtr getCompatGdiFuncPtr(FuncPtr<Result, Params...>)
OrigFuncPtr getCompatGdiDcFuncPtr(FuncPtr<Result, Params...>)
{
return &compatGdiFunc<OrigFuncPtr, origFunc, Result, Params...>;
return &compatGdiDcFunc<OrigFuncPtr, origFunc, Result, Params...>;
}
BOOL WINAPI scrollWindow(
@ -128,110 +128,110 @@ namespace
}
}
#define HOOK_GDI_FUNCTION_CUSTOM(module, func, newFunc) \
#define HOOK_GDI_FUNCTION(module, func, newFunc) \
CompatGdi::hookGdiFunction<decltype(&func), &func>( \
#module, #func, &newFunc);
#define HOOK_GDI_FUNCTION(module, func) \
#define HOOK_GDI_DC_FUNCTION(module, func) \
CompatGdi::hookGdiFunction<decltype(&func), &func>( \
#module, #func, getCompatGdiFuncPtr<decltype(&func), &func>(&func));
#module, #func, getCompatGdiDcFuncPtr<decltype(&func), &func>(&func));
#define HOOK_GDI_TEXT_FUNCTION(module, func) \
HOOK_GDI_FUNCTION(module, func##A); \
HOOK_GDI_FUNCTION(module, func##W)
#define HOOK_GDI_TEXT_DC_FUNCTION(module, func) \
HOOK_GDI_DC_FUNCTION(module, func##A); \
HOOK_GDI_DC_FUNCTION(module, func##W)
namespace CompatGdiFunctions
namespace CompatGdiDcFunctions
{
void installHooks()
{
DetourTransactionBegin();
// Bitmap functions
HOOK_GDI_FUNCTION(msimg32, AlphaBlend);
HOOK_GDI_FUNCTION(gdi32, BitBlt);
HOOK_GDI_FUNCTION(gdi32, CreateCompatibleBitmap);
HOOK_GDI_FUNCTION(gdi32, CreateDIBitmap);
HOOK_GDI_FUNCTION(gdi32, CreateDIBSection);
HOOK_GDI_FUNCTION(gdi32, CreateDiscardableBitmap);
HOOK_GDI_FUNCTION(gdi32, ExtFloodFill);
HOOK_GDI_FUNCTION(gdi32, GdiAlphaBlend);
HOOK_GDI_FUNCTION(gdi32, GdiGradientFill);
HOOK_GDI_FUNCTION(gdi32, GdiTransparentBlt);
HOOK_GDI_FUNCTION(gdi32, GetDIBits);
HOOK_GDI_FUNCTION(gdi32, GetPixel);
HOOK_GDI_FUNCTION(msimg32, GradientFill);
HOOK_GDI_FUNCTION(gdi32, MaskBlt);
HOOK_GDI_FUNCTION(gdi32, PlgBlt);
HOOK_GDI_FUNCTION(gdi32, SetDIBits);
HOOK_GDI_FUNCTION(gdi32, SetDIBitsToDevice);
HOOK_GDI_FUNCTION(gdi32, SetPixel);
HOOK_GDI_FUNCTION(gdi32, SetPixelV);
HOOK_GDI_FUNCTION(gdi32, StretchBlt);
HOOK_GDI_FUNCTION(gdi32, StretchDIBits);
HOOK_GDI_FUNCTION(msimg32, TransparentBlt);
HOOK_GDI_DC_FUNCTION(msimg32, AlphaBlend);
HOOK_GDI_DC_FUNCTION(gdi32, BitBlt);
HOOK_GDI_DC_FUNCTION(gdi32, CreateCompatibleBitmap);
HOOK_GDI_DC_FUNCTION(gdi32, CreateDIBitmap);
HOOK_GDI_DC_FUNCTION(gdi32, CreateDIBSection);
HOOK_GDI_DC_FUNCTION(gdi32, CreateDiscardableBitmap);
HOOK_GDI_DC_FUNCTION(gdi32, ExtFloodFill);
HOOK_GDI_DC_FUNCTION(gdi32, GdiAlphaBlend);
HOOK_GDI_DC_FUNCTION(gdi32, GdiGradientFill);
HOOK_GDI_DC_FUNCTION(gdi32, GdiTransparentBlt);
HOOK_GDI_DC_FUNCTION(gdi32, GetDIBits);
HOOK_GDI_DC_FUNCTION(gdi32, GetPixel);
HOOK_GDI_DC_FUNCTION(msimg32, GradientFill);
HOOK_GDI_DC_FUNCTION(gdi32, MaskBlt);
HOOK_GDI_DC_FUNCTION(gdi32, PlgBlt);
HOOK_GDI_DC_FUNCTION(gdi32, SetDIBits);
HOOK_GDI_DC_FUNCTION(gdi32, SetDIBitsToDevice);
HOOK_GDI_DC_FUNCTION(gdi32, SetPixel);
HOOK_GDI_DC_FUNCTION(gdi32, SetPixelV);
HOOK_GDI_DC_FUNCTION(gdi32, StretchBlt);
HOOK_GDI_DC_FUNCTION(gdi32, StretchDIBits);
HOOK_GDI_DC_FUNCTION(msimg32, TransparentBlt);
// Brush functions
HOOK_GDI_FUNCTION(gdi32, PatBlt);
HOOK_GDI_DC_FUNCTION(gdi32, PatBlt);
// Device context functions
HOOK_GDI_FUNCTION(gdi32, CreateCompatibleDC);
HOOK_GDI_FUNCTION(gdi32, DrawEscape);
HOOK_GDI_DC_FUNCTION(gdi32, CreateCompatibleDC);
HOOK_GDI_DC_FUNCTION(gdi32, DrawEscape);
// Filled shape functions
HOOK_GDI_FUNCTION(gdi32, Chord);
HOOK_GDI_FUNCTION(gdi32, Ellipse);
HOOK_GDI_FUNCTION(user32, FillRect);
HOOK_GDI_FUNCTION(user32, FrameRect);
HOOK_GDI_FUNCTION(user32, InvertRect);
HOOK_GDI_FUNCTION(gdi32, Pie);
HOOK_GDI_FUNCTION(gdi32, Polygon);
HOOK_GDI_FUNCTION(gdi32, PolyPolygon);
HOOK_GDI_FUNCTION(gdi32, Rectangle);
HOOK_GDI_FUNCTION(gdi32, RoundRect);
HOOK_GDI_DC_FUNCTION(gdi32, Chord);
HOOK_GDI_DC_FUNCTION(gdi32, Ellipse);
HOOK_GDI_DC_FUNCTION(user32, FillRect);
HOOK_GDI_DC_FUNCTION(user32, FrameRect);
HOOK_GDI_DC_FUNCTION(user32, InvertRect);
HOOK_GDI_DC_FUNCTION(gdi32, Pie);
HOOK_GDI_DC_FUNCTION(gdi32, Polygon);
HOOK_GDI_DC_FUNCTION(gdi32, PolyPolygon);
HOOK_GDI_DC_FUNCTION(gdi32, Rectangle);
HOOK_GDI_DC_FUNCTION(gdi32, RoundRect);
// Font and text functions
HOOK_GDI_TEXT_FUNCTION(user32, DrawText);
HOOK_GDI_TEXT_FUNCTION(user32, DrawTextEx);
HOOK_GDI_TEXT_FUNCTION(gdi32, ExtTextOut);
HOOK_GDI_TEXT_FUNCTION(gdi32, PolyTextOut);
HOOK_GDI_TEXT_FUNCTION(user32, TabbedTextOut);
HOOK_GDI_TEXT_FUNCTION(gdi32, TextOut);
HOOK_GDI_TEXT_DC_FUNCTION(user32, DrawText);
HOOK_GDI_TEXT_DC_FUNCTION(user32, DrawTextEx);
HOOK_GDI_TEXT_DC_FUNCTION(gdi32, ExtTextOut);
HOOK_GDI_TEXT_DC_FUNCTION(gdi32, PolyTextOut);
HOOK_GDI_TEXT_DC_FUNCTION(user32, TabbedTextOut);
HOOK_GDI_TEXT_DC_FUNCTION(gdi32, TextOut);
// Icon functions
HOOK_GDI_FUNCTION(user32, DrawIcon);
HOOK_GDI_FUNCTION(user32, DrawIconEx);
HOOK_GDI_DC_FUNCTION(user32, DrawIcon);
HOOK_GDI_DC_FUNCTION(user32, DrawIconEx);
// Line and curve functions
HOOK_GDI_FUNCTION(gdi32, AngleArc);
HOOK_GDI_FUNCTION(gdi32, Arc);
HOOK_GDI_FUNCTION(gdi32, ArcTo);
HOOK_GDI_FUNCTION(gdi32, LineTo);
HOOK_GDI_FUNCTION(gdi32, PolyBezier);
HOOK_GDI_FUNCTION(gdi32, PolyBezierTo);
HOOK_GDI_FUNCTION(gdi32, PolyDraw);
HOOK_GDI_FUNCTION(gdi32, Polyline);
HOOK_GDI_FUNCTION(gdi32, PolylineTo);
HOOK_GDI_FUNCTION(gdi32, PolyPolyline);
HOOK_GDI_DC_FUNCTION(gdi32, AngleArc);
HOOK_GDI_DC_FUNCTION(gdi32, Arc);
HOOK_GDI_DC_FUNCTION(gdi32, ArcTo);
HOOK_GDI_DC_FUNCTION(gdi32, LineTo);
HOOK_GDI_DC_FUNCTION(gdi32, PolyBezier);
HOOK_GDI_DC_FUNCTION(gdi32, PolyBezierTo);
HOOK_GDI_DC_FUNCTION(gdi32, PolyDraw);
HOOK_GDI_DC_FUNCTION(gdi32, Polyline);
HOOK_GDI_DC_FUNCTION(gdi32, PolylineTo);
HOOK_GDI_DC_FUNCTION(gdi32, PolyPolyline);
// Painting and drawing functions
HOOK_GDI_FUNCTION(user32, DrawCaption);
HOOK_GDI_FUNCTION(user32, DrawEdge);
HOOK_GDI_FUNCTION(user32, DrawFocusRect);
HOOK_GDI_FUNCTION(user32, DrawFrameControl);
HOOK_GDI_TEXT_FUNCTION(user32, DrawState);
HOOK_GDI_TEXT_FUNCTION(user32, GrayString);
HOOK_GDI_FUNCTION(user32, PaintDesktop);
HOOK_GDI_DC_FUNCTION(user32, DrawCaption);
HOOK_GDI_DC_FUNCTION(user32, DrawEdge);
HOOK_GDI_DC_FUNCTION(user32, DrawFocusRect);
HOOK_GDI_DC_FUNCTION(user32, DrawFrameControl);
HOOK_GDI_TEXT_DC_FUNCTION(user32, DrawState);
HOOK_GDI_TEXT_DC_FUNCTION(user32, GrayString);
HOOK_GDI_DC_FUNCTION(user32, PaintDesktop);
// Region functions
HOOK_GDI_FUNCTION(gdi32, FillRgn);
HOOK_GDI_FUNCTION(gdi32, FrameRgn);
HOOK_GDI_FUNCTION(gdi32, InvertRgn);
HOOK_GDI_FUNCTION(gdi32, PaintRgn);
HOOK_GDI_DC_FUNCTION(gdi32, FillRgn);
HOOK_GDI_DC_FUNCTION(gdi32, FrameRgn);
HOOK_GDI_DC_FUNCTION(gdi32, InvertRgn);
HOOK_GDI_DC_FUNCTION(gdi32, PaintRgn);
// Scroll bar functions
HOOK_GDI_FUNCTION(user32, ScrollDC);
HOOK_GDI_FUNCTION_CUSTOM(user32, ScrollWindow, scrollWindow);
HOOK_GDI_FUNCTION_CUSTOM(user32, ScrollWindowEx, scrollWindowEx);
HOOK_GDI_DC_FUNCTION(user32, ScrollDC);
HOOK_GDI_FUNCTION(user32, ScrollWindow, scrollWindow);
HOOK_GDI_FUNCTION(user32, ScrollWindowEx, scrollWindowEx);
DetourTransactionCommit();
}

View File

@ -1,6 +1,6 @@
#pragma once
namespace CompatGdiFunctions
namespace CompatGdiDcFunctions
{
void installHooks();
};