diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-09-20 00:29:45 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-09-20 00:29:45 +0100 |
commit | 39ca43ca3b24dcae76e1283ec8af4a16c845e2b7 (patch) | |
tree | d3aa095fa982695ffc3e621f62797a041ac36cb3 /yage | |
parent | 34396f0483d94229e3a315e5eeb90c77c1425273 (diff) | |
download | YAGE-39ca43ca3b24dcae76e1283ec8af4a16c845e2b7.tar.gz YAGE-39ca43ca3b24dcae76e1283ec8af4a16c845e2b7.zip |
More tests and adding spritesheet support
Diffstat (limited to 'yage')
-rw-r--r-- | yage/CMakeLists.txt | 17 | ||||
-rw-r--r-- | yage/base/spritesheet.h | 26 | ||||
-rw-r--r-- | yage/base/texture.h | 5 | ||||
-rw-r--r-- | yage/physics/particlebody.h | 2 | ||||
-rw-r--r-- | yage/yage.cpp | 24 | ||||
-rw-r--r-- | yage/yage.h | 10 |
6 files changed, 65 insertions, 19 deletions
diff --git a/yage/CMakeLists.txt b/yage/CMakeLists.txt index d45ffa90..1de87757 100644 --- a/yage/CMakeLists.txt +++ b/yage/CMakeLists.txt @@ -2,32 +2,31 @@ cmake_policy(SET CMP0048 NEW) project(yage VERSION 0.1.1.0 - LANGUAGES CXX - ) + LANGUAGES CXX) include(base/CMakeLists.txt) include(physics/CMakeLists.txt) include(math/CMakeLists.txt) set(YAGE_SOURCES + yage.cpp ${YAGE_BASE_SOURCES} ${YAGE_PHYSICS_SOURCES} - ${YAGE_MATH_SOURCES} - ) + ${YAGE_MATH_SOURCES}) set(${PROJECT_NAME}_DIR ${PROJECT_SOURCE_DIR}) add_library(${PROJECT_NAME} - ${YAGE_SOURCES} - ) + ${YAGE_SOURCES}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} - ) + ${OPENGL_INCLUDE_DIR} + ${GLEW_INCLUDE_DIR} + ${SDL2_INCLUDE_DIR}) target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES} - ${SDL2_LIBRARIES} - ) + ${SDL2_LIBRARIES}) diff --git a/yage/base/spritesheet.h b/yage/base/spritesheet.h index 2b70ad8b..dbde07c0 100644 --- a/yage/base/spritesheet.h +++ b/yage/base/spritesheet.h @@ -11,13 +11,37 @@ #include "texture.h" +#include <map> +#include <string> + namespace yage { +namespace +{ + +struct Coordinate { + int x; + int y; + int width; + int height; + + Coordinate(int x_i, int y_i, int width_i, int height_i) + : x(x_i), y(y_i), width(width_i), height(height_i) + { + } +}; + +} // namespace + class SpriteSheet { +public: + SpriteSheet(std::string pngFileName, std::string jsonFileName); + private: - Texture texture_; + Texture texture_; + std::map<std::string, Coordinate> fileLocations_; }; } // namespace yage diff --git a/yage/base/texture.h b/yage/base/texture.h index d1fdcbf2..3688bf04 100644 --- a/yage/base/texture.h +++ b/yage/base/texture.h @@ -18,6 +18,11 @@ struct Texture { GLuint id; int width; int height; + + Texture(GLuint id_i, int width_i, int height_i) + : id(id_i), width(width_i), height(height_i) + { + } }; } // namespace yage diff --git a/yage/physics/particlebody.h b/yage/physics/particlebody.h index 18cfff0b..c750c1a4 100644 --- a/yage/physics/particlebody.h +++ b/yage/physics/particlebody.h @@ -11,7 +11,7 @@ #include "body.h" -#include <yage/math/matrix.h> +#include <math/matrix.h> namespace yage { diff --git a/yage/yage.cpp b/yage/yage.cpp new file mode 100644 index 00000000..fa1e5c36 --- /dev/null +++ b/yage/yage.cpp @@ -0,0 +1,24 @@ +/* ---------------------------------------------------------------------------- + * yage.h + * + * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License + * See file LICENSE for more details + * ---------------------------------------------------------------------------- + */ + +#include "yage.h" + +namespace yage +{ + +bool init() +{ + return SDL_Init(SDL_INIT_VIDEO); +} + +void quit() +{ + SDL_Quit(); +} + +} // namespace yage diff --git a/yage/yage.h b/yage/yage.h index 286d4784..f20aff06 100644 --- a/yage/yage.h +++ b/yage/yage.h @@ -50,19 +50,13 @@ namespace yage * * @return Returns true if the initialization was successful. */ -bool init() -{ - return SDL_Init(SDL_INIT_VIDEO); -} +extern bool init(); /** Quit and cleanup yage * * SDL2 needs to clean itself up. */ -void quit() -{ - SDL_Quit(); -} +extern void quit(); } // namespace yage |