From 221a9b023d8c9ca55c093823e9efd6d13d0a54a2 Mon Sep 17 00:00:00 2001 From: Kevin Hartman Date: Fri, 29 Aug 2014 22:23:12 -0700 Subject: Viewport scaling and display density independence The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window. On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly. --- src/citra/emu_window/emu_window_glfw.cpp | 5 +++++ src/citra/emu_window/emu_window_glfw.h | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src/citra') diff --git a/src/citra/emu_window/emu_window_glfw.cpp b/src/citra/emu_window/emu_window_glfw.cpp index 0c774bbc..d0f6e9a9 100644 --- a/src/citra/emu_window/emu_window_glfw.cpp +++ b/src/citra/emu_window/emu_window_glfw.cpp @@ -34,6 +34,10 @@ const bool EmuWindow_GLFW::IsOpen() { return glfwWindowShouldClose(m_render_window) == 0; } +void EmuWindow_GLFW::GetFramebufferSize(int* fbWidth, int* fbHeight) { + glfwGetFramebufferSize(m_render_window, fbWidth, fbHeight); +} + /// EmuWindow_GLFW constructor EmuWindow_GLFW::EmuWindow_GLFW() { keyboard_id = KeyMap::NewDeviceId(); @@ -64,6 +68,7 @@ EmuWindow_GLFW::EmuWindow_GLFW() { glfwSetWindowUserPointer(m_render_window, this); glfwSetKeyCallback(m_render_window, OnKeyEvent); + DoneCurrent(); } diff --git a/src/citra/emu_window/emu_window_glfw.h b/src/citra/emu_window/emu_window_glfw.h index 7c307214..e9622876 100644 --- a/src/citra/emu_window/emu_window_glfw.h +++ b/src/citra/emu_window/emu_window_glfw.h @@ -21,7 +21,7 @@ public: /// Makes the graphics context current for the caller thread void MakeCurrent() override; - + /// Releases (dunno if this is the "right" word) the GLFW context from the caller thread void DoneCurrent() override; @@ -32,6 +32,9 @@ public: void ReloadSetKeymaps() override; + /// Gets the size of the window in pixels + void GetFramebufferSize(int* fbWidth, int* fbHeight); + private: GLFWwindow* m_render_window; ///< Internal GLFW render window -- cgit v1.2.3