mirror of
https://github.com/narzoul/DDrawCompat
synced 2024-12-30 08:55:36 +01:00
Implemented WindowFromDC for compat DCs
This commit is contained in:
parent
e8c5cd02d3
commit
8e456eafcb
@ -172,6 +172,13 @@ namespace CompatGdiDc
|
|||||||
return compatDc.dc;
|
return compatDc.dc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HDC getOrigDc(HDC dc)
|
||||||
|
{
|
||||||
|
const auto it = std::find_if(g_origDcToCompatDc.begin(), g_origDcToCompatDc.end(),
|
||||||
|
[dc](const CompatDcMap::value_type& compatDc) { return compatDc.second.dc == dc; });
|
||||||
|
return it != g_origDcToCompatDc.end() ? it->first : dc;
|
||||||
|
}
|
||||||
|
|
||||||
void releaseDc(HDC origDc)
|
void releaseDc(HDC origDc)
|
||||||
{
|
{
|
||||||
CompatGdi::GdiScopedThreadLock gdiLock;
|
CompatGdi::GdiScopedThreadLock gdiLock;
|
||||||
|
@ -7,5 +7,6 @@
|
|||||||
namespace CompatGdiDc
|
namespace CompatGdiDc
|
||||||
{
|
{
|
||||||
HDC getDc(HDC origDc);
|
HDC getDc(HDC origDc);
|
||||||
|
HDC getOrigDc(HDC dc);
|
||||||
void releaseDc(HDC origDc);
|
void releaseDc(HDC origDc);
|
||||||
}
|
}
|
||||||
|
@ -101,6 +101,11 @@ namespace
|
|||||||
{
|
{
|
||||||
return &compatGdiDcFunc<OrigFuncPtr, origFunc, Result, Params...>;
|
return &compatGdiDcFunc<OrigFuncPtr, origFunc, Result, Params...>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HWND WINAPI windowFromDc(HDC dc)
|
||||||
|
{
|
||||||
|
return CALL_ORIG_GDI(WindowFromDC)(CompatGdiDc::getOrigDc(dc));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define HOOK_GDI_DC_FUNCTION(module, func) \
|
#define HOOK_GDI_DC_FUNCTION(module, func) \
|
||||||
@ -147,6 +152,7 @@ namespace CompatGdiDcFunctions
|
|||||||
// Device context functions
|
// Device context functions
|
||||||
HOOK_GDI_DC_FUNCTION(gdi32, CreateCompatibleDC);
|
HOOK_GDI_DC_FUNCTION(gdi32, CreateCompatibleDC);
|
||||||
HOOK_GDI_DC_FUNCTION(gdi32, DrawEscape);
|
HOOK_GDI_DC_FUNCTION(gdi32, DrawEscape);
|
||||||
|
HOOK_GDI_FUNCTION(user32, WindowFromDC, windowFromDc);
|
||||||
|
|
||||||
// Filled shape functions
|
// Filled shape functions
|
||||||
HOOK_GDI_DC_FUNCTION(gdi32, Chord);
|
HOOK_GDI_DC_FUNCTION(gdi32, Chord);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user