aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-04-01 13:57:23 +0100
committerYann Herklotz <ymherklotz@gmail.com>2017-04-01 13:57:23 +0100
commit2bcac034841473bec27dcadc27a3b434b527abe0 (patch)
tree0ee56e165dc3f787423f1a0669425f145cdc461b
parenteb8f03ac327b62bf1b8afa3fcd7dfd8d8ed86e05 (diff)
downloadArider-2bcac034841473bec27dcadc27a3b434b527abe0.tar.gz
Arider-2bcac034841473bec27dcadc27a3b434b527abe0.zip
Made zedengine library
-rw-r--r--.gitignore1
-rw-r--r--CMakeLists.txt38
-rw-r--r--include/arider_config.hpp2
-rw-r--r--include/game.hpp1
-rw-r--r--res/shaders/color_shading.frag5
-rw-r--r--src/game.cpp45
-rw-r--r--src/main.cpp4
-rw-r--r--zedengine/CMakeLists.txt18
-rw-r--r--zedengine/include/gl_texture.hpp (renamed from include/gl_texture.hpp)0
-rw-r--r--zedengine/include/glsl_program.hpp (renamed from include/glsl_program.hpp)0
-rw-r--r--zedengine/include/image_loader.hpp (renamed from include/image_loader.hpp)0
-rw-r--r--zedengine/include/io_manager.hpp (renamed from include/io_manager.hpp)0
-rw-r--r--zedengine/include/logger.hpp24
-rw-r--r--zedengine/include/pico_png.hpp (renamed from include/pico_png.hpp)0
-rw-r--r--zedengine/include/resource_manager.hpp (renamed from include/resource_manager.hpp)0
-rw-r--r--zedengine/include/sprite.hpp (renamed from include/sprite.hpp)0
-rw-r--r--zedengine/include/texture_cache.hpp (renamed from include/texture_cache.hpp)0
-rw-r--r--zedengine/include/vertex.hpp (renamed from include/vertex.hpp)9
-rw-r--r--zedengine/src/glsl_program.cpp (renamed from src/glsl_program.cpp)2
-rw-r--r--zedengine/src/image_loader.cpp (renamed from src/image_loader.cpp)0
-rw-r--r--zedengine/src/io_manager.cpp (renamed from src/io_manager.cpp)0
-rw-r--r--zedengine/src/pico_png.cpp (renamed from src/pico_png.cpp)0
-rw-r--r--zedengine/src/resource_manager.cpp (renamed from src/resource_manager.cpp)0
-rw-r--r--zedengine/src/sprite.cpp (renamed from src/sprite.cpp)0
-rw-r--r--zedengine/src/texture_cache.cpp (renamed from src/texture_cache.cpp)0
25 files changed, 119 insertions, 30 deletions
diff --git a/.gitignore b/.gitignore
index 4b51520..93e44ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ CMakeFiles/
# extensions to ignore
*.o
*.out
+*.a
# general files to ignore
CMakeCache.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 437a9ad..8726e5e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.0)
project(arider)
# set version number
@@ -6,34 +6,31 @@ set(ARIDER_MAJOR_VERSION 0)
set(ARIDER_MINOR_VERSION 1)
set(ARIDER_PATCH_VERSION 0)
set(ARIDER_VERSION
- ${ARIDER_MAJOR_VERSION}.${ARIDER_MINOR_VERSION}.${ARIDER_PATCH_VERSION})
+ ${ARIDER_MAJOR_VERSION}.${ARIDERn_MINOR_VERSION}.${ARIDER_PATCH_VERSION})
# set standard
set(CMAKE_CXX_STANDARD 14)
# set include directories
-set(ARIDER_INCLUDE_DIR "include/")
+set(ARIDER_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/include)
# setting right output directory
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
+
+
+set(ZEDENGINE_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/zedengine/include/)
+set(ZEDENGINE_LIBRARIES zedengine)
# setting up configuration header
configure_file (
- "config/arider_config.hpp.in"
- "include/arider_config.hpp"
+ ${CMAKE_SOURCE_DIR}/config/arider_config.hpp.in
+ ${CMAKE_SOURCE_DIR}/include/arider_config.hpp
)
# adding my executable
add_executable(${PROJECT_NAME}
- src/main.cpp
- src/game.cpp
- src/glsl_program.cpp
- src/image_loader.cpp
- src/io_manager.cpp
- src/pico_png.cpp
- src/sprite.cpp
- src/resource_manager.cpp
- src/texture_cache.cpp)
+ ${CMAKE_SOURCE_DIR}/src/game.cpp
+ ${CMAKE_SOURCE_DIR}/src/main.cpp)
# adding sdl2 library
include(FindPkgConfig)
@@ -41,14 +38,19 @@ find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
pkg_search_module(SDL2 REQUIRED sdl2)
+# add zedengine library
+add_subdirectory(zedengine)
+
# adding include directories
-include_directories(${ARIDER_INCLUDE_DIR}
+include_directories(${ARIDER_INCLUDE_DIRS}
+ ${ZEDENGINE_INCLUDE_DIRS}
${OPENGL_INCLUDE_DIRS}
${GLEW_INCLUDE_DIRS}
- ${SDL2_INCLUDE_DIRS})
+ ${SLD2_INCLUDE_DIRS})
# link libraries
-target_link_libraries(${PROJECT_NAME}
+target_link_libraries(${CMAKE_PROJECT_NAME}
+ ${ZEDENGINE_LIBRARIES}
${OPENGL_LIBRARIES}
${GLEW_LIBRARIES}
${SDL2_LIBRARIES})
diff --git a/include/arider_config.hpp b/include/arider_config.hpp
index 9afa2e9..f71fe78 100644
--- a/include/arider_config.hpp
+++ b/include/arider_config.hpp
@@ -2,4 +2,4 @@
#define ARIDER_MAJOR_VERSION 0
#define ARIDER_MINOR_VERSION 1
#define ARIDER_PATCH_VERSION 0
-#define ARIDER_VERSION 0.1.0
+#define ARIDER_VERSION 0..0
diff --git a/include/game.hpp b/include/game.hpp
index a5443a0..1991ebe 100644
--- a/include/game.hpp
+++ b/include/game.hpp
@@ -35,6 +35,7 @@ private:
void processInput();
void gameLoop();
void drawGame();
+ float calculateFps();
public:
Game();
~Game();
diff --git a/res/shaders/color_shading.frag b/res/shaders/color_shading.frag
index 059218c..5b70355 100644
--- a/res/shaders/color_shading.frag
+++ b/res/shaders/color_shading.frag
@@ -7,14 +7,13 @@ in vec2 fragment_uv;
out vec4 color;
uniform float time;
-uniform sampler2D sampler;
+uniform sampler2D texture_sampler;
void main()
{
- vec4 texture_color = texture(sampler, fragment_uv);
+ vec4 texture_color = texture(texture_sampler, fragment_uv);
// color = texture_color * fragment_color;
-
color = texture_color * vec4(fragment_color.g*(cos(fragment_position.x*4.0+time)+1.0)/2.0,
fragment_color.r*(cos(fragment_position.y*8.0+time)+1.0)/2.0,
fragment_color.r*(sin(fragment_position.x*2.0+time)+1.0)/2.0,
diff --git a/src/game.cpp b/src/game.cpp
index 4c2e122..125c655 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -2,6 +2,7 @@
#include "sprite.hpp"
#include <stdexcept>
+#include <iostream>
Game::Game()
{}
@@ -17,21 +18,28 @@ void Game::initSystems()
if(SDL_Init(SDL_INIT_VIDEO))
throw std::runtime_error("SDL_Init failed");
+ // SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 4);
+ // SDL_GL_SetAttribute (SDL_GL_CONTEXT_MINOR_VERSION, 5);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
+
window_ = SDL_CreateWindow("Arider", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
width_, height_, SDL_WINDOW_OPENGL);
if(window_ == nullptr)
throw std::runtime_error("SDL_CreateWindow failed");
- SDL_GLContext glContext = SDL_GL_CreateContext(window_);
- if(glContext == nullptr)
+ SDL_GLContext gl_context = SDL_GL_CreateContext(window_);
+ if(gl_context == nullptr)
throw std::runtime_error("SDL_GL_CreateContext failed");
GLenum error = glewInit();
if(error != GLEW_OK)
throw std::runtime_error("glewInit failed");
+ std::cout<<"*** OpenGL version: "<<glGetString(GL_VERSION)<<" ***\n";
+
+ SDL_GL_SetSwapInterval(1);
+
glClearColor(0.f, 0.f, 0.f, 1.f);
initShaders();
@@ -67,6 +75,7 @@ void Game::gameLoop()
processInput();
drawGame();
time_ += 0.05;
+ // std::cout<<calculateFps()<<'\n';
}
}
@@ -79,7 +88,7 @@ void Game::drawGame()
program_.use();
glActiveTexture(GL_TEXTURE0);
- GLint texture_location = program_.getUniformLocation("sampler");
+ GLint texture_location = program_.getUniformLocation("texture_sampler");
glUniform1i(texture_location, 0);
GLint time_location = program_.getUniformLocation("time");
@@ -108,3 +117,33 @@ void Game::run()
sprites_.back()->init(-1.f, 0.f, 1.f, 1.f, "res/platformer_png/Player/p1_duck.png");
gameLoop();
}
+
+float Game::calculateFps()
+{
+ static const int NUM_SAMPLES = 100;
+ static float frame_times[NUM_SAMPLES];
+ static float prev_ticks = SDL_GetTicks();
+ static unsigned current_frame = 0;
+
+ float current_ticks = SDL_GetTicks();
+
+ frame_times[current_frame%NUM_SAMPLES] = current_ticks-prev_ticks;
+ prev_ticks = current_ticks;
+
+ int count = NUM_SAMPLES;
+ if(current_frame<NUM_SAMPLES)
+ count = current_frame;
+
+ float frame_time_average = 0;
+ for(int i = 0; i < count; ++i)
+ frame_time_average += frame_times[i];
+ frame_time_average /= count;
+
+ float fps = 60.f;
+ if(frame_time_average>0)
+ fps = 1000.f/frame_time_average;
+
+ ++current_frame;
+
+ return fps;
+}
diff --git a/src/main.cpp b/src/main.cpp
index f8e06e8..bae9033 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,9 +1,11 @@
#include "arider_config.hpp"
#include "game.hpp"
+#include "logger.hpp"
+
+#include <GL/glew.h>
#include <exception>
#include <iostream>
-#include <SDL2/SDL.h>
int main()
{
diff --git a/zedengine/CMakeLists.txt b/zedengine/CMakeLists.txt
new file mode 100644
index 0000000..d64d0a7
--- /dev/null
+++ b/zedengine/CMakeLists.txt
@@ -0,0 +1,18 @@
+# zedengine library cmakelists.txt
+
+project(zedengine)
+
+# add sources to library
+set(ZEDENGINE_SOURCES ${PROJECT_SOURCE_DIR}/src/glsl_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/image_loader.cpp
+ ${PROJECT_SOURCE_DIR}/src/io_manager.cpp
+ ${PROJECT_SOURCE_DIR}/src/pico_png.cpp
+ ${PROJECT_SOURCE_DIR}/src/resource_manager.cpp
+ ${PROJECT_SOURCE_DIR}/src/sprite.cpp
+ ${PROJECT_SOURCE_DIR}/src/texture_cache.cpp)
+
+# set include directory
+include_directories(${ZEDENGINE_INCLUDE_DIRS})
+
+# make it a static library
+add_library(${PROJECT_NAME} ${ZEDENGINE_SOURCES})
diff --git a/include/gl_texture.hpp b/zedengine/include/gl_texture.hpp
index 808d86b..808d86b 100644
--- a/include/gl_texture.hpp
+++ b/zedengine/include/gl_texture.hpp
diff --git a/include/glsl_program.hpp b/zedengine/include/glsl_program.hpp
index cef38a8..cef38a8 100644
--- a/include/glsl_program.hpp
+++ b/zedengine/include/glsl_program.hpp
diff --git a/include/image_loader.hpp b/zedengine/include/image_loader.hpp
index 5f7b97f..5f7b97f 100644
--- a/include/image_loader.hpp
+++ b/zedengine/include/image_loader.hpp
diff --git a/include/io_manager.hpp b/zedengine/include/io_manager.hpp
index 05d288b..05d288b 100644
--- a/include/io_manager.hpp
+++ b/zedengine/include/io_manager.hpp
diff --git a/zedengine/include/logger.hpp b/zedengine/include/logger.hpp
new file mode 100644
index 0000000..36c7b9b
--- /dev/null
+++ b/zedengine/include/logger.hpp
@@ -0,0 +1,24 @@
+#ifndef LOGGER_HPP
+#define LOGGER_HPP
+
+#include <string>
+
+class Logger
+{
+public:
+ template<typename Tail>
+ static std::string log(std::ostream &out, Tail &&tail)
+ {
+ out<<tail;
+ }
+
+ template<typename Head, typename... Tail>
+ static std::string log(std::ostream &out, Head &&head, Tail &&...tail)
+ {
+ out<<std::forward<Head>(head);
+ log(out, std::forward<Tail>(tail)...);
+ }
+};
+
+
+#endif
diff --git a/include/pico_png.hpp b/zedengine/include/pico_png.hpp
index ef12357..ef12357 100644
--- a/include/pico_png.hpp
+++ b/zedengine/include/pico_png.hpp
diff --git a/include/resource_manager.hpp b/zedengine/include/resource_manager.hpp
index 155515a..155515a 100644
--- a/include/resource_manager.hpp
+++ b/zedengine/include/resource_manager.hpp
diff --git a/include/sprite.hpp b/zedengine/include/sprite.hpp
index 9f765c7..9f765c7 100644
--- a/include/sprite.hpp
+++ b/zedengine/include/sprite.hpp
diff --git a/include/texture_cache.hpp b/zedengine/include/texture_cache.hpp
index 44dba2f..44dba2f 100644
--- a/include/texture_cache.hpp
+++ b/zedengine/include/texture_cache.hpp
diff --git a/include/vertex.hpp b/zedengine/include/vertex.hpp
index d416405..d9ab113 100644
--- a/include/vertex.hpp
+++ b/zedengine/include/vertex.hpp
@@ -29,19 +29,22 @@ struct Vertex
Color color;
UV uv;
- void setPosition(float x, float y) {
+ void setPosition(float x, float y)
+ {
position.x = x;
position.y = y;
}
- void setColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a) {
+ void setColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a)
+ {
color.r = r;
color.g = g;
color.b = b;
color.a = a;
}
- void setUv(float u, float v) {
+ void setUv(float u, float v)
+ {
uv.u = u;
uv.v = v;
}
diff --git a/src/glsl_program.cpp b/zedengine/src/glsl_program.cpp
index 33a3f53..6fe7cf0 100644
--- a/src/glsl_program.cpp
+++ b/zedengine/src/glsl_program.cpp
@@ -118,7 +118,7 @@ void GlslProgram::addAttribute(const std::string &attribute_name)
GLint GlslProgram::getUniformLocation(const std::string &uniform_name)
{
GLint location = glGetUniformLocation(program_id_, uniform_name.c_str());
- if(location == GL_INVALID_INDEX)
+ if((GLuint)location == GL_INVALID_INDEX)
throw std::runtime_error("'"+uniform_name+"' not found");
return location;
}
diff --git a/src/image_loader.cpp b/zedengine/src/image_loader.cpp
index bb5485d..bb5485d 100644
--- a/src/image_loader.cpp
+++ b/zedengine/src/image_loader.cpp
diff --git a/src/io_manager.cpp b/zedengine/src/io_manager.cpp
index 106dd24..106dd24 100644
--- a/src/io_manager.cpp
+++ b/zedengine/src/io_manager.cpp
diff --git a/src/pico_png.cpp b/zedengine/src/pico_png.cpp
index 6e86634..6e86634 100644
--- a/src/pico_png.cpp
+++ b/zedengine/src/pico_png.cpp
diff --git a/src/resource_manager.cpp b/zedengine/src/resource_manager.cpp
index 7bd8dd4..7bd8dd4 100644
--- a/src/resource_manager.cpp
+++ b/zedengine/src/resource_manager.cpp
diff --git a/src/sprite.cpp b/zedengine/src/sprite.cpp
index 5821eb8..5821eb8 100644
--- a/src/sprite.cpp
+++ b/zedengine/src/sprite.cpp
diff --git a/src/texture_cache.cpp b/zedengine/src/texture_cache.cpp
index c57538b..c57538b 100644
--- a/src/texture_cache.cpp
+++ b/zedengine/src/texture_cache.cpp