Merge pull request #143 from archshift/graceful-quit

Implemented graceful closing of the GLFW window, along with emulation.
This commit is contained in:
Tony Wasserka 2014-10-18 01:07:04 +02:00
commit d32ea3b977
3 changed files with 9 additions and 1 deletions

View file

@ -34,7 +34,7 @@ int __cdecl main(int argc, char **argv) {
return -1; return -1;
} }
while(true) { while (emu_window->IsOpen()) {
Core::RunLoop(); Core::RunLoop();
} }

View file

@ -29,6 +29,11 @@ void EmuWindow_GLFW::OnKeyEvent(GLFWwindow* win, int key, int scancode, int acti
HID_User::PadUpdateComplete(); HID_User::PadUpdateComplete();
} }
/// Whether the window is still open, and a close request hasn't yet been sent
const bool EmuWindow_GLFW::IsOpen() {
return glfwWindowShouldClose(m_render_window) != 0;
}
/// EmuWindow_GLFW constructor /// EmuWindow_GLFW constructor
EmuWindow_GLFW::EmuWindow_GLFW() { EmuWindow_GLFW::EmuWindow_GLFW() {
keyboard_id = KeyMap::NewDeviceId(); keyboard_id = KeyMap::NewDeviceId();

View file

@ -27,6 +27,9 @@ public:
static void OnKeyEvent(GLFWwindow* win, int key, int scancode, int action, int mods); static void OnKeyEvent(GLFWwindow* win, int key, int scancode, int action, int mods);
/// Whether the window is still open, and a close request hasn't yet been sent
const bool IsOpen();
void ReloadSetKeymaps() override; void ReloadSetKeymaps() override;
private: private: