修复高DPI下工作不正常的BUG
This commit is contained in:
parent
6bb7d35497
commit
74025826b4
|
|
@ -199,7 +199,12 @@ e2d::Point e2d::Input::getMousePos()
|
||||||
POINT mousePos;
|
POINT mousePos;
|
||||||
GetCursorPos(&mousePos);
|
GetCursorPos(&mousePos);
|
||||||
ScreenToClient(Window::getInstance()->getHWnd(), &mousePos);
|
ScreenToClient(Window::getInstance()->getHWnd(), &mousePos);
|
||||||
return Point((double)mousePos.x, (double)mousePos.y);
|
|
||||||
|
float dpiScaleX = 0.f, dpiScaleY = 0.f;
|
||||||
|
Renderer::getFactory()->GetDesktopDpi(&dpiScaleX, &dpiScaleY);
|
||||||
|
|
||||||
|
return Point(static_cast<double>(mousePos.x * 96.f / dpiScaleX),
|
||||||
|
static_cast<double>(mousePos.y * 96.f / dpiScaleX));
|
||||||
}
|
}
|
||||||
|
|
||||||
double e2d::Input::getMouseDeltaX()
|
double e2d::Input::getMouseDeltaX()
|
||||||
|
|
|
||||||
|
|
@ -426,7 +426,9 @@ LRESULT e2d::Window::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPar
|
||||||
|
|
||||||
if (wParam == SIZE_RESTORED)
|
if (wParam == SIZE_RESTORED)
|
||||||
{
|
{
|
||||||
_instance->_size = Size(width, height);
|
float dpiScaleX = 0.f, dpiScaleY = 0.f;
|
||||||
|
Renderer::getFactory()->GetDesktopDpi(&dpiScaleX, &dpiScaleY);
|
||||||
|
_instance->_size = Size(width * 96.f / dpiScaleX, height * 96.f / dpiScaleY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果程序接收到一个 WM_SIZE 消息,这个方法将调整渲染
|
// 如果程序接收到一个 WM_SIZE 消息,这个方法将调整渲染
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue