summaryrefslogtreecommitdiffstats
path: root/src/citra/emu_window/emu_window_sdl2.h
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2016-03-01 18:24:18 +0100
committerMerryMage <MerryMage@users.noreply.github.com>2016-03-02 15:09:02 +0100
commitba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab (patch)
tree182d660b2f2c8572266144f46817e5a221aa4caf /src/citra/emu_window/emu_window_sdl2.h
parentMerge pull request #1424 from MerryMage/lut_init (diff)
downloadyuzu-ba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab.tar
yuzu-ba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab.tar.gz
yuzu-ba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab.tar.bz2
yuzu-ba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab.tar.lz
yuzu-ba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab.tar.xz
yuzu-ba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab.tar.zst
yuzu-ba2a54a9dd6e5a263c5e6886e55b3bc55b95b4ab.zip
Diffstat (limited to '')
-rw-r--r--src/citra/emu_window/emu_window_sdl2.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/citra/emu_window/emu_window_sdl2.h b/src/citra/emu_window/emu_window_sdl2.h
new file mode 100644
index 000000000..77279f022
--- /dev/null
+++ b/src/citra/emu_window/emu_window_sdl2.h
@@ -0,0 +1,64 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <utility>
+
+#include "common/emu_window.h"
+
+struct SDL_Window;
+
+class EmuWindow_SDL2 : public EmuWindow {
+public:
+ EmuWindow_SDL2();
+ ~EmuWindow_SDL2();
+
+ /// Swap buffers to display the next frame
+ void SwapBuffers() override;
+
+ /// Polls window events
+ void PollEvents() override;
+
+ /// Makes the graphics context current for the caller thread
+ void MakeCurrent() override;
+
+ /// Releases the GL context from the caller thread
+ void DoneCurrent() override;
+
+ /// Whether the window is still open, and a close request hasn't yet been sent
+ bool IsOpen() const;
+
+ /// Load keymap from configuration
+ void ReloadSetKeymaps() override;
+
+private:
+ /// Called by PollEvents when a key is pressed or released.
+ void OnKeyEvent(int key, u8 state);
+
+ /// Called by PollEvents when the mouse moves.
+ void OnMouseMotion(s32 x, s32 y);
+
+ /// Called by PollEvents when a mouse button is pressed or released
+ void OnMouseButton(u32 button, u8 state, s32 x, s32 y);
+
+ /// Called by PollEvents when any event that may cause the window to be resized occurs
+ void OnResize();
+
+ /// Called when a configuration change affects the minimal size of the window
+ void OnMinimalClientAreaChangeRequest(const std::pair<unsigned, unsigned>& minimal_size) override;
+
+ /// Is the window still open?
+ bool is_open = true;
+
+ /// Internal SDL2 render window
+ SDL_Window* render_window;
+
+ using SDL_GLContext = void *;
+ /// The OpenGL context associated with the window
+ SDL_GLContext gl_context;
+
+ /// Device id of keyboard for use with KeyMap
+ int keyboard_id;
+};