aboutsummaryrefslogtreecommitdiffstats
path: root/yage
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-09-20 00:29:45 +0100
committerYann Herklotz <ymherklotz@gmail.com>2017-09-20 00:29:45 +0100
commit39ca43ca3b24dcae76e1283ec8af4a16c845e2b7 (patch)
treed3aa095fa982695ffc3e621f62797a041ac36cb3 /yage
parent34396f0483d94229e3a315e5eeb90c77c1425273 (diff)
downloadYAGE-39ca43ca3b24dcae76e1283ec8af4a16c845e2b7.tar.gz
YAGE-39ca43ca3b24dcae76e1283ec8af4a16c845e2b7.zip
More tests and adding spritesheet support
Diffstat (limited to 'yage')
-rw-r--r--yage/CMakeLists.txt17
-rw-r--r--yage/base/spritesheet.h26
-rw-r--r--yage/base/texture.h5
-rw-r--r--yage/physics/particlebody.h2
-rw-r--r--yage/yage.cpp24
-rw-r--r--yage/yage.h10
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