Fix viewport for retina displays

This commit is contained in:
SpaiR committed 2020-08-21 12:41:49 +03:00
1 parent de99849471
commit 54e2da3778
2 files changed
+6 -7

No files matched your search

@@ -363,7 +363,7 @@ public final class ImGuiImplGl3 {
// Setup viewport, orthographic projection matrix
// Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right).
// DisplayPos is (0,0) for single viewport apps.
glViewport(0, 0, (int) displaySize.x, (int) displaySize.y);
glViewport(0, 0, (int) (displaySize.x * framebufferScale.x), (int) (displaySize.y * framebufferScale.y));
final float left = displayPos.x;
final float right = displayPos.x + displaySize.x;
final float top = displayPos.y;
@@ -279,7 +279,7 @@ public class ImGuiImplGlfw {
}
}
private void updateMousePosAndButtons(final float scaleX, final float scaleY) {
private void updateMousePosAndButtons() {
final ImGuiIO io = ImGui.getIO();
for (int i = 0; i < ImGuiMouseButton.COUNT; i++) {
@@ -297,7 +297,7 @@ public class ImGuiImplGlfw {
glfwSetCursorPos(windowPtr, mousePosBackup.x, mousePosBackup.y);
} else {
glfwGetCursorPos(windowPtr, cursorPosX, cursorPosY);
io.setMousePos((float) cursorPosX[0] * scaleX, (float) cursorPosY[0] * scaleY);
io.setMousePos((float) cursorPosX[0], (float) cursorPosY[0]);
}
}
}
@@ -400,11 +400,10 @@ public class ImGuiImplGlfw {
glfwGetWindowSize(windowPtr, winWidth, winHeight);
glfwGetFramebufferSize(windowPtr, fbWidth, fbHeight);
final float scaleX = (float) fbWidth[0] / winWidth[0];
final float scaleY = (float) fbHeight[0] / winHeight[0];
io.setDisplaySize((float) winWidth[0], (float) winHeight[0]);
if (winWidth[0] > 0 && winHeight[0] > 0) {
final float scaleX = (float) fbWidth[0] / winWidth[0];
final float scaleY = (float) fbHeight[0] / winHeight[0];
io.setDisplayFramebufferScale(scaleX, scaleY);
}
@@ -412,7 +411,7 @@ public class ImGuiImplGlfw {
io.setDeltaTime(time > 0.0 ? (float) (currentTime - time) : 1.0f / 60.0f);
time = currentTime;
updateMousePosAndButtons(scaleX, scaleY);
updateMousePosAndButtons();
updateMouseCursor();
updateGamepads();
}