From 8c286d21bd5b96779a0f4a4439da74ac7e1f4b53 Mon Sep 17 00:00:00 2001 From: narzoul Date: Sat, 19 Mar 2016 16:30:11 +0100 Subject: [PATCH] Additional debug info for HWND and HDC parameters --- DDrawCompat/DDrawLog.cpp | 18 +++++++++++++++--- DDrawCompat/DDrawLog.h | 4 +++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/DDrawCompat/DDrawLog.cpp b/DDrawCompat/DDrawLog.cpp index c25a4ba..c38ca8b 100644 --- a/DDrawCompat/DDrawLog.cpp +++ b/DDrawCompat/DDrawLog.cpp @@ -27,6 +27,20 @@ std::ostream& operator<<(std::ostream& os, const RECT& rect) return os << "R(" << rect.left << ',' << rect.top << ',' << rect.right << ',' << rect.bottom << ')'; } +std::ostream& operator<<(std::ostream& os, HDC__& dc) +{ + return os << "DC(" << static_cast(&dc) << ',' << WindowFromDC(&dc) << ')'; +} + +std::ostream& operator<<(std::ostream& os, HWND__& hwnd) +{ + char name[256] = {}; + GetClassName(&hwnd, name, sizeof(name)); + RECT rect = {}; + GetWindowRect(&hwnd, &rect); + return os << "WND(" << static_cast(&hwnd) << ',' << name << ',' << rect << ')'; +} + std::ostream& operator<<(std::ostream& os, const DDSCAPS& caps) { return os << "C(" << std::hex << caps.dwCaps << std::dec << ')'; @@ -74,9 +88,7 @@ std::ostream& operator<<(std::ostream& os, const DDSURFACEDESC2& sd) std::ostream& operator<<(std::ostream& os, const CWPRETSTRUCT& cwrp) { - RECT wr = {}; - GetWindowRect(cwrp.hwnd, &wr); - return os << "CWRP(" << std::hex << cwrp.message << "," << cwrp.hwnd << ":" << std::dec << wr << "," << + return os << "CWRP(" << std::hex << cwrp.message << "," << std::dec << cwrp.hwnd << "," << std::hex << cwrp.wParam << "," << cwrp.lParam << "," << cwrp.lResult << std::dec << ")"; } diff --git a/DDrawCompat/DDrawLog.h b/DDrawCompat/DDrawLog.h index 5936e6b..cd6a533 100644 --- a/DDrawCompat/DDrawLog.h +++ b/DDrawCompat/DDrawLog.h @@ -16,6 +16,8 @@ std::ostream& operator<<(std::ostream& os, const WCHAR* wstr); std::ostream& operator<<(std::ostream& os, const RECT& rect); +std::ostream& operator<<(std::ostream& os, HDC__& dc); +std::ostream& operator<<(std::ostream& os, HWND__& hwnd); std::ostream& operator<<(std::ostream& os, const DDSCAPS& caps); std::ostream& operator<<(std::ostream& os, const DDSCAPS2& caps); std::ostream& operator<<(std::ostream& os, const DDPIXELFORMAT& pf); @@ -32,7 +34,7 @@ operator<<(std::ostream& os, const T& t) template typename std::enable_if::value, std::ostream&>::type -operator<<(std::ostream& os, const T* t) +operator<<(std::ostream& os, T* t) { return t ? (os << *t) : (os << "null"); }