From 8d36078606de602903e9b5fb9ca0348170c3e7cd Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sun, 12 Mar 2023 00:38:36 -0600 Subject: [PATCH] feat(gx): implement window size queries in d3d backend --- src/gx/d3d/CGxDeviceD3d.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/gx/d3d/CGxDeviceD3d.cpp b/src/gx/d3d/CGxDeviceD3d.cpp index c299342..4125f0d 100644 --- a/src/gx/d3d/CGxDeviceD3d.cpp +++ b/src/gx/d3d/CGxDeviceD3d.cpp @@ -385,11 +385,28 @@ int32_t CGxDeviceD3d::BufUnlock(CGxBuf* buf, uint32_t size) { } void CGxDeviceD3d::CapsWindowSize(CRect& dst) { - // TODO + dst = this->DeviceCurWindow(); } void CGxDeviceD3d::CapsWindowSizeInScreenCoords(CRect& dst) { - // TODO + if (this->IDevIsWindowed()) { + auto windowRect = this->DeviceCurWindow(); + + POINT points[2]; + points[0].x = 0; + points[0].y = 0; + points[1].x = windowRect.maxX; + points[1].y = windowRect.maxY; + + MapWindowPoints(this->m_hwnd, nullptr, points, 2); + + dst.minY = points[0].y; + dst.minX = points[0].x; + dst.maxY = points[1].y; + dst.maxX = points[1].x; + } else { + dst = this->DeviceCurWindow(); + } } int32_t CGxDeviceD3d::CreatePoolAPI(CGxPool* pool) {