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/CMakeLists.txt | 26 -------- 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 +++-- yage/physics/particlebody.h | 1 - 8 files changed, 160 insertions(+), 37 deletions(-) create mode 100644 yage/core/input.h (limited to 'yage') diff --git a/yage/CMakeLists.txt b/yage/CMakeLists.txt index 83a6e054..b28b04f6 100644 --- a/yage/CMakeLists.txt +++ b/yage/CMakeLists.txt @@ -1,29 +1,3 @@ -cmake_policy(SET CMP0048 NEW) -file(GLOB YAGE_CORE_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} core/*.cpp) -file(GLOB YAGE_MATH_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} math/*.cpp) -file(GLOB YAGE_PHYSICS_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} physics/*.cpp) -file(GLOB YAGE_UTIL_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} util/*.cpp) -file(GLOB YAGE_CURRENT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) -set(YAGE_SOURCES - ${YAGE_CORE_SOURCES} - ${YAGE_PHYSICS_SOURCES} - ${YAGE_MATH_SOURCES} - ${YAGE_UTIL_SOURCES} - ${YAGE_CURRENT_SOURCES}) -set(${PROJECT_NAME}_DIR - ${PROJECT_SOURCE_DIR}) - -add_library(${PROJECT_NAME} - ${YAGE_SOURCES}) - -target_include_directories(${PROJECT_NAME} - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} - ${OPENGL_INCLUDE_DIR}) - -target_link_libraries(${PROJECT_NAME} - ${OPENGL_gl_LIBRARY} - glfw - glad) 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 diff --git a/yage/physics/particlebody.h b/yage/physics/particlebody.h index 2e7a4f88..3978da77 100644 --- a/yage/physics/particlebody.h +++ b/yage/physics/particlebody.h @@ -10,7 +10,6 @@ #define YAGE_PHYSICS_PARTICLE_BODY_H #include "body.h" - #include namespace yage -- cgit