From 16915d86d4b866c1fcce7523b0d34e8343ff52fc Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sun, 24 Dec 2017 21:04:38 +0000 Subject: [Code] Simple game example furthered --- yage/core/input.h | 1 + yage/core/texture.h | 4 ++-- yage/core/window.cpp | 31 +++++++++++++++++++------------ yage/core/window.h | 17 ++++++++--------- 4 files changed, 30 insertions(+), 23 deletions(-) (limited to 'yage/core') diff --git a/yage/core/input.h b/yage/core/input.h index 125f4296..866793d8 100644 --- a/yage/core/input.h +++ b/yage/core/input.h @@ -9,6 +9,7 @@ #ifndef YAGE_CORE_INPUT_H #define YAGE_CORE_INPUT_H +#define GLFW_INCLUDE_NONE #include namespace yage diff --git a/yage/core/texture.h b/yage/core/texture.h index 2eae8bf4..aec7b906 100644 --- a/yage/core/texture.h +++ b/yage/core/texture.h @@ -6,8 +6,8 @@ * ---------------------------------------------------------------------------- */ -#ifndef GL_TEXTURE_H -#define GL_TEXTURE_H +#ifndef YAGE_CORE_TEXTURE_H +#define YAGE_CORE_TEXTURE_H #include diff --git a/yage/core/window.cpp b/yage/core/window.cpp index 70e8d8e3..f2f22e3b 100644 --- a/yage/core/window.cpp +++ b/yage/core/window.cpp @@ -7,23 +7,21 @@ */ #include "window.h" +#include "input.h" + +#include +#include #include +using std::runtime_error; + namespace yage { void key_callback(GLFWwindow *window, int key, int scanCode, int action, int mods) { - if (key == GLFW_KEY_E && (action == GLFW_REPEAT || action == GLFW_PRESS)) { - glClearColor(0.5f, 0.f, 0.f, 1.f); - } else if (key == GLFW_KEY_Q && - (action == GLFW_REPEAT || action == GLFW_PRESS)) { - glClearColor(0.f, 0.f, 0.5f, 1.f); - } else { - glClearColor(0.f, .5f, 0.f, 1.f); - } } Window::Window() = default; @@ -37,7 +35,7 @@ Window::~Window() void Window::create(std::string window_name, int width, int height) { if (glfwInit() == GLFW_FALSE) { - throw std::runtime_error("GLFW Initialisation failed"); + throw runtime_error("GLFW Initialisation failed"); } glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); @@ -47,7 +45,7 @@ void Window::create(std::string window_name, int width, int height) window_ = glfwCreateWindow(width, height, window_name.c_str(), nullptr, nullptr); if (window_ == nullptr) { - throw std::runtime_error("GLFW Window creation failed"); + throw runtime_error("GLFW Window creation failed"); } // initialize the gl context @@ -101,10 +99,19 @@ bool Window::shouldClose() void Window::pollEvents() const { glfwPollEvents(); +} - if (glfwGetKey(window_, GLFW_KEY_W) == GLFW_PRESS) { - glClearColor(0.f, 0.5f, 0.5f, 1.f); +bool Window::keyPressed(key k) +{ + if (window_ == nullptr) { + throw runtime_error("Window is not initialized"); + } + + if (glfwGetKey(window_, static_cast(k)) == GLFW_PRESS) { + return true; } + + return false; } } // namespace yage diff --git a/yage/core/window.h b/yage/core/window.h index 5c16c172..93ed6c07 100644 --- a/yage/core/window.h +++ b/yage/core/window.h @@ -6,21 +6,18 @@ * ---------------------------------------------------------------------------- */ -/** @file - */ - -#ifndef WINDOW_H -#define WINDOW_H - -#include - -#include +#ifndef YAGE_CORE_WINDOW_H +#define YAGE_CORE_WINDOW_H #include +class GLFWwindow; + namespace yage { +enum class key; + // window flags that can change it's appearance enum WindowFlags : unsigned { SHOWN = 0x1, @@ -58,6 +55,8 @@ public: void show(); bool shouldClose(); void pollEvents() const; + + bool keyPressed(key k); }; } // namespace yage -- cgit