aboutsummaryrefslogtreecommitdiffstats
path: root/yage
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-12-24 21:04:38 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-12-24 21:04:38 +0000
commit16915d86d4b866c1fcce7523b0d34e8343ff52fc (patch)
treefdc07bff71840f7336ed5d2e751155635e8ff96a /yage
parentddd26ed83d3ac0335562f762ced273a1d62bd959 (diff)
downloadYAGE-16915d86d4b866c1fcce7523b0d34e8343ff52fc.tar.gz
YAGE-16915d86d4b866c1fcce7523b0d34e8343ff52fc.zip
[Code] Simple game example furthered
Diffstat (limited to 'yage')
-rw-r--r--yage/core/input.h1
-rw-r--r--yage/core/texture.h4
-rw-r--r--yage/core/window.cpp31
-rw-r--r--yage/core/window.h17
4 files changed, 30 insertions, 23 deletions
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 <GLFW/glfw3.h>
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 <glad/glad.h>
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 <glad/glad.h>
+#include <GLFW/glfw3.h>
#include <stdexcept>
+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<int>(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 <glad/glad.h>
-
-#include <GLFW/glfw3.h>
+#ifndef YAGE_CORE_WINDOW_H
+#define YAGE_CORE_WINDOW_H
#include <string>
+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