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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
CompatGdi::GdiScopedThreadLock gdiLock;
|
||||
|
@ -7,5 +7,6 @@
|
||||
namespace CompatGdiDc
|
||||
{
|
||||
HDC getDc(HDC origDc);
|
||||
HDC getOrigDc(HDC dc);
|
||||
void releaseDc(HDC origDc);
|
||||
}
|
||||
|
@ -101,6 +101,11 @@ namespace
|
||||
{
|
||||
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) \
|
||||
@ -147,6 +152,7 @@ namespace CompatGdiDcFunctions
|
||||
// Device context functions
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, CreateCompatibleDC);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, DrawEscape);
|
||||
HOOK_GDI_FUNCTION(user32, WindowFromDC, windowFromDc);
|
||||
|
||||
// Filled shape functions
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Chord);
|
||||
|
Loading…
x
Reference in New Issue
Block a user