From 92f63bbdbfc214849c203511bbcb1be0a4865588 Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 15 Feb 2024 11:33:11 +0100 Subject: Proper input system --- src/GFX/Window.cpp | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'src/GFX/Window.cpp') diff --git a/src/GFX/Window.cpp b/src/GFX/Window.cpp index 33e76d5..5c391c8 100644 --- a/src/GFX/Window.cpp +++ b/src/GFX/Window.cpp @@ -3,10 +3,12 @@ #include "../Common/Assert.hpp" #include "../ThreadRole.hpp" #include "Window.hpp" +#include "../Common/Casts.hpp" +#include namespace MC::GFX { -Window::Window(const Char* title, U32 width, U32 height) { +Window::Window(std::string const& title, U32 const width, U32 const height) { ASSERT_MAIN_THREAD(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); @@ -14,7 +16,7 @@ Window::Window(const Char* title, U32 width, U32 height) { glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_DOUBLEBUFFER, GL_TRUE); - m_window = glfwCreateWindow(width, height, title, nullptr, nullptr); + m_window = glfwCreateWindow(TO(I32, width), TO(I32, height), title.c_str(), nullptr, nullptr); if (m_window == nullptr) { throw std::runtime_error("Failed to create window."); } @@ -36,32 +38,20 @@ GLFWwindow* Window::get() const { return m_window; } -void Window::close() { +void Window::close() const { glfwSetWindowShouldClose(m_window, true); } -Vector<2> Window::mouse_delta() { - return m_mouse.update(m_window); -} - -Bool Window::key(I32 key, I32 type) const { - return glfwGetKey(m_window, key) == type; -} - -Bool Window::mouse(I32 key, I32 type) const { - return glfwGetMouseButton(m_window, key) == type; -} - -void Window::start_render() { +void Window::start_render() const { glfwSwapBuffers(m_window); } -void Window::poll_events() { +void Window::poll_events() const { ASSERT_MAIN_THREAD(); glfwPollEvents(); } -void Window::on_size_change(void (callback)(GLFWwindow*, I32, I32)) { +void Window::on_size_change(void (callback)(GLFWwindow*, I32, I32)) const { glfwSetFramebufferSizeCallback(m_window, callback); } -- cgit 1.4.1