From 24253190c92c9d7ef669061670a3b7596f9ee190 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Fri, 22 Dec 2017 18:34:29 +0000 Subject: Changing directories and adding input support --- yage/core/input.h | 142 ++++++++++++++++++++++++++++++++++++++++++ yage/core/resourcemanager.cpp | 1 + yage/core/resourcemanager.h | 3 +- yage/core/sprite.h | 3 - yage/core/texturecache.cpp | 5 +- yage/core/window.cpp | 16 +++-- 6 files changed, 160 insertions(+), 10 deletions(-) create mode 100644 yage/core/input.h (limited to 'yage/core') diff --git a/yage/core/input.h b/yage/core/input.h new file mode 100644 index 00000000..3882e11c --- /dev/null +++ b/yage/core/input.h @@ -0,0 +1,142 @@ +#ifndef YAGE_CORE_INPUT_H +#define YAGE_CORE_INPUT_H + +#include + +namespace yage +{ + +enum class key { + // unknown key + UNKNOWN = GLFW_KEY_UNKNOWN, + + // actual keys + SPACE = GLFW_KEY_SPACE, + APOSTROPHE = GLFW_KEY_APOSTROPHE, /* ' */ + COMMA = GLFW_KEY_COMMA, /* , */ + MINUS = GLFW_KEY_MINUS, /* - */ + PERIOD = GLFW_KEY_PERIOD, /* . */ + SLASH = GLFW_KEY_SLASH, /* / */ + NUM0 = GLFW_KEY_0, + NUM1 = GLFW_KEY_1, + NUM2 = GLFW_KEY_2, + NUM3 = GLFW_KEY_3, + NUM4 = GLFW_KEY_4, + NUM5 = GLFW_KEY_5, + NUM6 = GLFW_KEY_6, + NUM7 = GLFW_KEY_7, + NUM8 = GLFW_KEY_8, + NUM9 = GLFW_KEY_9, + SEMICOLON = GLFW_KEY_SEMICOLON, /* ; */ + EQUAL = GLFW_KEY_EQUAL, /* = */ + A = GLFW_KEY_A, + B = GLFW_KEY_B, + C = GLFW_KEY_C, + D = GLFW_KEY_D, + E = GLFW_KEY_E, + F = GLFW_KEY_F, + G = GLFW_KEY_G, + H = GLFW_KEY_H, + I = GLFW_KEY_I, + J = GLFW_KEY_J, + K = GLFW_KEY_K, + L = GLFW_KEY_L, + M = GLFW_KEY_M, + N = GLFW_KEY_N, + O = GLFW_KEY_O, + P = GLFW_KEY_P, + Q = GLFW_KEY_Q, + R = GLFW_KEY_R, + S = GLFW_KEY_S, + T = GLFW_KEY_T, + U = GLFW_KEY_U, + V = GLFW_KEY_V, + W = GLFW_KEY_W, + X = GLFW_KEY_X, + Y = GLFW_KEY_Y, + Z = GLFW_KEY_Z, + LEfT_BRACKET = GLFW_KEY_LEFT_BRACKET, /* [ */ + BACKSLASH = GLFW_KEY_BACKSLASH, /* \ */ + RIGHT_BRACKET = GLFW_KEY_RIGHT_BRACKET, /* ] */ + GRAVE_ACCENT = GLFW_KEY_GRAVE_ACCENT, /* ` */ + WORLD_1 = GLFW_KEY_WORLD_1, /* non-US #1 */ + WORLD_2 = GLFW_KEY_WORLD_2, /* non-US #2 */ + + // function keys + ESCAPE = GLFW_KEY_ESCAPE, + ENTER = GLFW_KEY_ENTER, + TAB = GLFW_KEY_TAB, + BACKSPACE = GLFW_KEY_BACKSPACE, + INSERT = GLFW_KEY_INSERT, + DELETE = GLFW_KEY_DELETE, + RIGHT = GLFW_KEY_RIGHT, + LEFT = GLFW_KEY_LEFT, + DOWN = GLFW_KEY_DOWN, + UP = GLFW_KEY_UP, + PAGE_UP = GLFW_KEY_PAGE_UP, + PAGE_DOWN = GLFW_KEY_PAGE_DOWN, + HOME = GLFW_KEY_HOME, + END = GLFW_KEY_END, + CAPS_LOCK = GLFW_KEY_CAPS_LOCK, + SCROLL_LOCK = GLFW_KEY_SCROLL_LOCK, + NUM_LOCK = GLFW_KEY_NUM_LOCK, + PRINT_SCREEN = GLFW_KEY_PRINT_SCREEN, + PAUSE = GLFW_KEY_PAUSE, + F1 = GLFW_KEY_F1, + F2 = GLFW_KEY_F2, + F3 = GLFW_KEY_F3, + F4 = GLFW_KEY_F4, + F5 = GLFW_KEY_F5, + F6 = GLFW_KEY_F6, + F7 = GLFW_KEY_F7, + F8 = GLFW_KEY_F8, + F9 = GLFW_KEY_F9, + F10 = GLFW_KEY_F10, + F11 = GLFW_KEY_F11, + F12 = GLFW_KEY_F12, + F13 = GLFW_KEY_F13, + F14 = GLFW_KEY_F14, + F15 = GLFW_KEY_F15, + F16 = GLFW_KEY_F16, + F17 = GLFW_KEY_F17, + F18 = GLFW_KEY_F18, + F19 = GLFW_KEY_F19, + F20 = GLFW_KEY_F20, + F21 = GLFW_KEY_F21, + F22 = GLFW_KEY_F22, + F23 = GLFW_KEY_F23, + F24 = GLFW_KEY_F24, + F25 = GLFW_KEY_F25, + KP_0 = GLFW_KEY_KP_0, + KP_1 = GLFW_KEY_KP_1, + KP_2 = GLFW_KEY_KP_2, + KP_3 = GLFW_KEY_KP_3, + KP_4 = GLFW_KEY_KP_4, + KP_5 = GLFW_KEY_KP_5, + KP_6 = GLFW_KEY_KP_6, + KP_7 = GLFW_KEY_KP_7, + KP_8 = GLFW_KEY_KP_8, + KP_9 = GLFW_KEY_KP_9, + KP_DECIMAL = GLFW_KEY_KP_DECIMAL, + KP_DIVIDE = GLFW_KEY_KP_DIVIDE, + KP_MULTIPLY = GLFW_KEY_KP_MULTIPLY, + KP_SUBTRACT = GLFW_KEY_KP_SUBTRACT, + KP_ADD = GLFW_KEY_KP_ADD, + KP_ENTER = GLFW_KEY_KP_ENTER, + KP_EQUAL = GLFW_KEY_KP_EQUAL, + LEFT_SHIFT = GLFW_KEY_LEFT_SHIFT, + LEFT_CONTROL = GLFW_KEY_LEFT_CONTROL, + LEFT_ALT = GLFW_KEY_LEFT_ALT, + LEFT_SUPER = GLFW_KEY_LEFT_SUPER, + RIGHT_SHIFT = GLFW_KEY_RIGHT_SHIFT, + RIGHT_CONTROL = GLFW_KEY_RIGHT_CONTROL, + RIGHT_ALT = GLFW_KEY_RIGHT_ALT, + RIGHT_SUPER = GLFW_KEY_RIGHT_SUPER, + MENU = GLFW_KEY_MENU, + + LAST = GLFW_KEY_LAST, +}; + +} // namepsace yage + +#endif diff --git a/yage/core/resourcemanager.cpp b/yage/core/resourcemanager.cpp index f841222b..c585a235 100644 --- a/yage/core/resourcemanager.cpp +++ b/yage/core/resourcemanager.cpp @@ -7,6 +7,7 @@ */ #include "resourcemanager.h" +#include "texture.h" namespace yage { diff --git a/yage/core/resourcemanager.h b/yage/core/resourcemanager.h index 369bf40f..a0249436 100644 --- a/yage/core/resourcemanager.h +++ b/yage/core/resourcemanager.h @@ -17,7 +17,6 @@ #ifndef RESOURCE_MANAGER_H #define RESOURCE_MANAGER_H -#include "texture.h" #include "texturecache.h" #include @@ -25,6 +24,8 @@ namespace yage { +class Texture; + class ResourceManager { private: diff --git a/yage/core/sprite.h b/yage/core/sprite.h index 0287fe10..35997195 100644 --- a/yage/core/sprite.h +++ b/yage/core/sprite.h @@ -6,9 +6,6 @@ * ---------------------------------------------------------------------------- */ -/** @file - */ - #ifndef SPRITE_H #define SPRITE_H diff --git a/yage/core/texturecache.cpp b/yage/core/texturecache.cpp index f9468dbb..1c61e774 100644 --- a/yage/core/texturecache.cpp +++ b/yage/core/texturecache.cpp @@ -6,8 +6,9 @@ * ---------------------------------------------------------------------------- */ -#include -#include +#include "texturecache.h" +#include "imageloader.h" +#include "texture.h" namespace yage { diff --git a/yage/core/window.cpp b/yage/core/window.cpp index 9696f2bb..70e8d8e3 100644 --- a/yage/core/window.cpp +++ b/yage/core/window.cpp @@ -16,10 +16,13 @@ namespace yage void key_callback(GLFWwindow *window, int key, int scanCode, int action, int mods) { - if (key == GLFW_KEY_E && action == GLFW_PRESS) { + 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, 0.5f, 0.f, 1.f); + glClearColor(0.f, .5f, 0.f, 1.f); } } @@ -37,8 +40,9 @@ void Window::create(std::string window_name, int width, int height) throw std::runtime_error("GLFW Initialisation failed"); } - glfwWindowHint(GLFW_VERSION_MAJOR, 4); - glfwWindowHint(GLFW_VERSION_MINOR, 5); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 5); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); window_ = glfwCreateWindow(width, height, window_name.c_str(), nullptr, nullptr); @@ -97,6 +101,10 @@ 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); + } } } // namespace yage -- cgit