aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-12-22 18:34:29 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-12-22 18:34:29 +0000
commit24253190c92c9d7ef669061670a3b7596f9ee190 (patch)
treef03d785e30a7783b5e0d5e7b669cd2997d5877ed
parentb885965a6375f98d6bec63a43233461f9f42006d (diff)
downloadYAGE-24253190c92c9d7ef669061670a3b7596f9ee190.tar.gz
YAGE-24253190c92c9d7ef669061670a3b7596f9ee190.zip
Changing directories and adding input support
-rw-r--r--.clang-format1
-rw-r--r--.dir-locals.el2
-rw-r--r--.gitmodules28
-rw-r--r--.travis.yml15
-rw-r--r--CMakeLists.txt91
m---------external/glad (renamed from lib/glad)0
m---------external/glfw0
m---------external/glm0
m---------external/rapidjson0
-rw-r--r--lib/CMakeLists.txt37
m---------lib/glfw0
m---------lib/googletest0
m---------lib/rapidjson0
-rw-r--r--resources/textureshader.frag (renamed from resources/defaultshader.frag)8
-rw-r--r--resources/textureshader.vert (renamed from resources/defaultshader.vert)14
-rw-r--r--tests/CMakeLists.txt37
m---------tests/external/googletest0
-rw-r--r--tests/simplegame.cpp7
-rw-r--r--yage/CMakeLists.txt26
-rw-r--r--yage/core/input.h142
-rw-r--r--yage/core/resourcemanager.cpp1
-rw-r--r--yage/core/resourcemanager.h3
-rw-r--r--yage/core/sprite.h3
-rw-r--r--yage/core/texturecache.cpp5
-rw-r--r--yage/core/window.cpp16
-rw-r--r--yage/physics/particlebody.h1
26 files changed, 273 insertions, 164 deletions
diff --git a/.clang-format b/.clang-format
index a4489c53..6ba7c5be 100644
--- a/.clang-format
+++ b/.clang-format
@@ -4,6 +4,7 @@ IndentWidth: 4
---
Language: Cpp
AccessModifierOffset: -4
+AlignConsecutiveAssignments: true
AlignTrailingComments: true
AllowShortFunctionsOnASingleLine: Inline
AlwaysBreakTemplateDeclarations: true
diff --git a/.dir-locals.el b/.dir-locals.el
index db723df8..b98c6f58 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -1,3 +1,3 @@
-((nil . ((projectile-project-compilation-cmd . "mkdir -p build && cd build && cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DUNIT_TESTS=ON .. && make -j9")
+((nil . ((projectile-project-compilation-cmd . "mkdir -p build && cd build && cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DYAGE_BUILD_TESTS=ON .. && make -j9")
(projectile-project-test-cmd . "cd build && ctest")
(projectile-project-run-cmd . "./bin/simplegame"))))
diff --git a/.gitmodules b/.gitmodules
index e9c4fb4f..6f1908ca 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,16 +1,20 @@
-[submodule "lib/googletest"]
- path = lib/googletest
- url = https://github.com/google/googletest
+[submodule "external/glm"]
+ path = external/glm
+ url = https://github.com/g-truc/glm.git
branch = master
-[submodule "lib/rapidjson"]
- path = lib/rapidjson
- url = https://github.com/miloyip/rapidjson
+[submodule "external/glad"]
+ path = external/glad
+ url = git@github.com:ymherklotz/glad.git
branch = master
-[submodule "lib/glfw"]
- path = lib/glfw
+[submodule "external/glfw"]
+ path = external/glfw
url = https://github.com/glfw/glfw.git
- branch = latest
-[submodule "lib/glad"]
- path = lib/glad
- url = https://github.com/ymherklotz/glad.git
+ branch = master
+[submodule "external/rapidjson"]
+ path = external/rapidjson
+ url = https://github.com/Tencent/rapidjson.git
+ branch = master
+[submodule "tests/external/googletest"]
+ path = tests/external/googletest
+ url = https://github.com/google/googletest.git
branch = master
diff --git a/.travis.yml b/.travis.yml
index d6383cb4..7a43043e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -103,21 +103,6 @@ matrix:
env:
- "MATRIX_EVAL=\"CC=clang-5.0 && CXX=clang++-5.0\""
os: linux
-# -
-# env:
-# - "MATRIX_EVAL=\"rvm install ruby-2.3.3 && rvm use 2.3.3 && brew update && brew install gcc5 && CC=gcc-5 && CXX=g++-5\""
-# os: osx
-# osx_image: xcode8
-# -
-# env:
-# - "MATRIX_EVAL=\"rvm install ruby-2.3.3 && rvm use 2.3.3 && brew update && brew install gcc6 && CC=gcc-6 && CXX=g++-6\""
-# os: osx
-# osx_image: xcode8
-# -
-# env:
-# - "MATRIX_EVAL=\"rvm install ruby-2.3.3 && rvm use 2.3.3 && brew update && brew install gcc && CC=gcc-7 && CXX=g++-7\""
-# os: osx
-# osx_image: xcode8
notifications:
email: false
script:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0ea75fa1..82910286 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,54 +5,49 @@ project(yage
VERSION 0.1.3.0
LANGUAGES CXX)
-if(NOT DEFINED UNIT_TESTS)
- set(UNIT_TESTS 0)
-endif()
-
# set standard
set(CMAKE_CXX_STANDARD 14)
-# set the test sources
-set(YAGE_TEST_DIR ${PROJECT_SOURCE_DIR}/tests)
-
-# set binary directory
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR})
-
-# find libraries
-find_package(OpenGL REQUIRED)
-
-# include subdirectories
-include(${CMAKE_CURRENT_SOURCE_DIR}/lib/CMakeLists.txt)
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/yage)
-
-if(UNIT_TESTS)
- add_executable(simplegame tests/simplegame.cpp)
- target_link_libraries(simplegame yage)
-
- # enable tests
- enable_testing()
- set(SIMULATION_RUNS 1000)
-
- function(make_test test_name cycles)
- add_executable(${test_name} ${YAGE_TEST_DIR}/${test_name}.cpp)
- target_link_libraries(${test_name}
- gtest_main
- yage)
- add_test(NAME ${test_name} COMMAND ${test_name} --gtest_repeat=${cycles} --gtest_break_on_failure)
- endfunction(make_test)
-
- make_test(yagetest 1)
- make_test(matrixtest ${SIMULATION_RUNS})
- make_test(particlebodytest 100)
- make_test(windowtest ${SIMULATION_RUNS})
- make_test(spritesheettest ${SIMULATION_RUNS})
- make_test(vector3test ${SIMULATION_RUNS})
- make_test(vector4test ${SIMULATION_RUNS})
- make_test(logtest 1)
- make_test(threadtest 1)
- make_test(syncqueuetest 1)
- make_test(activetest 1)
- make_test(structtest ${SIMULATION_RUNS})
-endif()
+# find other libraries from source
+set(EXTERNAL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external)
+
+# GLFW3
+set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
+set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
+set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
+add_subdirectory(${EXTERNAL_DIR}/glfw)
+
+# glad
+add_subdirectory(${EXTERNAL_DIR}/glad)
+
+# yage
+file(GLOB YAGE_CORE_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} yage/core/*.cpp)
+file(GLOB YAGE_MATH_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} yage/math/*.cpp)
+file(GLOB YAGE_PHYSICS_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} yage/physics/*.cpp)
+file(GLOB YAGE_UTIL_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} yage/util/*.cpp)
+file(GLOB YAGE_CURRENT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} yage/*.cpp)
+
+set(YAGE_SOURCES
+ ${YAGE_CORE_SOURCES}
+ ${YAGE_PHYSICS_SOURCES}
+ ${YAGE_MATH_SOURCES}
+ ${YAGE_UTIL_SOURCES}
+ ${YAGE_CURRENT_SOURCES})
+
+add_library(yage
+ ${YAGE_SOURCES})
+
+target_include_directories(yage
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/yage
+ ${EXTERNAL_DIR}/glm
+ ${EXTERNAL_DIR}/rapidjson/include)
+
+target_link_libraries(yage
+ glfw
+ ${GLFW_LIBRARIES}
+ glad)
+
+if(YAGE_BUILD_TESTS)
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tests)
+endif(YAGE_BUILD_TESTS)
diff --git a/lib/glad b/external/glad
-Subproject 1e168396e9f457a26523a80a6ae704558413eb6
+Subproject 1e168396e9f457a26523a80a6ae704558413eb6
diff --git a/external/glfw b/external/glfw
new file mode 160000
+Subproject 84077401e96e243ffd29939475951ee95c4505a
diff --git a/external/glm b/external/glm
new file mode 160000
+Subproject 1190ae0b0e6ab38dc4a650ce7ad79be66a7a4de
diff --git a/external/rapidjson b/external/rapidjson
new file mode 160000
+Subproject 802ece6d7c29611e26a31e8d22f9f28a887fa30
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
deleted file mode 100644
index 017e8206..00000000
--- a/lib/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# ----------------------------------------------------------------------------
-# CMakeLists.txt
-#
-# Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License
-# See file LICENSE for more details
-# ----------------------------------------------------------------------------
-
-set(LIBRARY_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib)
-
-if(UNIT_TESTS)
- # Initializing google test
- # prevents overriding the parent project's compiler/linter settings on windows
- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
- set(BUILD_GTEST ON CACHE BOOL "" FORCE)
- set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)
-
- # Add googletest directly to our build. This defines
- # the gtest and gtest_main targets.
- add_subdirectory(${LIBRARY_DIRECTORY}/googletest)
-
- # The gtest/gtest_main targets carry header search path
- # dependencies automatically when using CMake 2.8.11 or
- # later. Otherwise we have to add them here ourselves.
- if (CMAKE_VERSION VERSION_LESS 2.8.11)
- include_directories(${gtest_SOURCE_DIR}/include)
- endif()
-endif()
-
-include_directories(${LIBRARY_DIRECTORY}/rapidjson/include)
-
-# setting up glfw
-set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
-set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
-set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
-add_subdirectory(${LIBRARY_DIRECTORY}/glfw)
-
-add_subdirectory(${LIBRARY_DIRECTORY}/glad)
diff --git a/lib/glfw b/lib/glfw
deleted file mode 160000
-Subproject 999f3556fdd80983b10051746264489f2cb1ef1
diff --git a/lib/googletest b/lib/googletest
deleted file mode 160000
-Subproject d175c8bf823e709d570772b038757fadf63bc63
diff --git a/lib/rapidjson b/lib/rapidjson
deleted file mode 160000
-Subproject 5aa79b72721b7c8f8efa2fd65ae99912a67c921
diff --git a/resources/defaultshader.frag b/resources/textureshader.frag
index 1d8219a5..37a8a219 100644
--- a/resources/defaultshader.frag
+++ b/resources/textureshader.frag
@@ -1,8 +1,8 @@
-#version 130
+#version 450
-in vec2 fragment_position;
-in vec4 fragment_colour;
-in vec2 fragment_uv;
+layout(location = 0) in vec2 fragment_position;
+layout(location = 1) in vec4 fragment_colour;
+layout(location = 2) in vec2 fragment_uv;
out vec4 colour;
diff --git a/resources/defaultshader.vert b/resources/textureshader.vert
index 2eba9bcf..3277d8b0 100644
--- a/resources/defaultshader.vert
+++ b/resources/textureshader.vert
@@ -1,12 +1,12 @@
-#version 130
+#version 450
-in vec2 vertex_position;
-in vec4 vertex_colour;
-in vec2 vertex_uv;
+layout(location = 0) in vec2 vertex_position;
+layout(location = 1) in vec4 vertex_colour;
+layout(location = 2) in vec2 vertex_uv;
-out vec2 fragment_position;
-out vec4 fragment_colour;
-out vec2 fragment_uv;
+layout(location = 0) out vec2 fragment_position;
+layout(location = 1) out vec4 fragment_colour;
+layout(location = 2) out vec2 fragment_uv;
uniform mat4 P;
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 00000000..613e0bdb
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Initializing google test
+# prevents overriding the parent project's compiler/linter settings on windows
+set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+set(BUILD_GTEST ON CACHE BOOL "" FORCE)
+set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)
+
+# Add googletest directly to our build. This defines
+# the gtest and gtest_main targets.
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/googletest)
+
+add_executable(simplegame simplegame.cpp)
+target_link_libraries(simplegame yage)
+
+# enable tests
+enable_testing()
+set(SIMULATION_RUNS 1000)
+
+function(make_test test_name cycles)
+ add_executable(${test_name} ${test_name}.cpp)
+ target_link_libraries(${test_name}
+ gtest_main
+ yage)
+ add_test(NAME ${test_name} COMMAND ${test_name} --gtest_repeat=${cycles} --gtest_break_on_failure)
+endfunction(make_test)
+
+make_test(yagetest 1)
+make_test(matrixtest ${SIMULATION_RUNS})
+make_test(particlebodytest 100)
+make_test(windowtest ${SIMULATION_RUNS})
+make_test(spritesheettest ${SIMULATION_RUNS})
+make_test(vector3test ${SIMULATION_RUNS})
+make_test(vector4test ${SIMULATION_RUNS})
+make_test(logtest 1)
+make_test(threadtest 1)
+make_test(syncqueuetest 1)
+make_test(activetest 1)
+make_test(structtest ${SIMULATION_RUNS})
diff --git a/tests/external/googletest b/tests/external/googletest
new file mode 160000
+Subproject 5490beb0602eab560fa3969a4410e11d94bf12a
diff --git a/tests/simplegame.cpp b/tests/simplegame.cpp
index d4c7b266..04d63ec0 100644
--- a/tests/simplegame.cpp
+++ b/tests/simplegame.cpp
@@ -22,7 +22,8 @@ int main()
window.create("Simple Game", 800, 640);
SpriteBatch sp;
- program.defaultSetup();
+ program.compileShadersFromFile("resources/textureshader.vert", "resources/textureshader.frag");
+ program.linkShaders();
Texture fountain =
ResourceManager::getTexture("/home/yannherklotz/Github/YAGE/tests/"
@@ -43,13 +44,13 @@ int main()
GLint texture_location = program.getUniformLocation("texture_sampler");
glUniform1i(texture_location, 0);
- sp.draw({0.f, 0.f, 64.f, 64.f}, {0, 0, 1, 1}, fountain.id, Colour(), 0);
+ sp.draw({0.f, 0.f, 64.f, 64.f}, {0, 0, 1, 1}, fountain.id, Colour(255, 0, 255, 255), 0);
sp.render();
glBindTexture(GL_TEXTURE_2D, 0);
program.unuse();
- window.pollEvents();
window.swapBuffer();
+ window.pollEvents();
}
}
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 <GLFW/glfw3.h>
+
+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 <string>
@@ -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 <yage/core/imageloader.h>
-#include <yage/core/texturecache.h>
+#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 <math/matrix.h>
namespace yage