From a8de6cb5593e3d6347393eb4c144c9cc22a470d8 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sat, 19 May 2018 15:15:20 +0100 Subject: Moving resources and generalising examples --- examples/CMakeLists.txt | 22 ++- examples/resources/breast_black.png | Bin 225 -> 0 bytes examples/resources/bullet.png | Bin 1383 -> 0 bytes examples/resources/colourshader.frag | 10 -- examples/resources/colourshader.vert | 15 -- examples/resources/container.jpg | Bin 184939 -> 0 bytes examples/resources/dngn_blood_fountain.png | Bin 955 -> 0 bytes examples/resources/fighter_fd.png | Bin 6467 -> 0 bytes examples/resources/fighter_fl.png | Bin 2916 -> 0 bytes examples/resources/fighter_md.png | Bin 6464 -> 0 bytes examples/resources/fighter_ml.png | Bin 2843 -> 0 bytes examples/resources/healer_fd.png | Bin 7862 -> 0 bytes examples/resources/healer_fl.png | Bin 3256 -> 0 bytes examples/resources/healer_md.png | Bin 6756 -> 0 bytes examples/resources/healer_ml.png | Bin 2940 -> 0 bytes examples/resources/learnopenglshader.frag | 12 -- examples/resources/learnopenglshader.vert | 14 -- examples/resources/mage_fd.png | Bin 7026 -> 0 bytes examples/resources/mage_fl.png | Bin 3283 -> 0 bytes examples/resources/mage_md.png | Bin 6794 -> 0 bytes examples/resources/mage_ml.png | Bin 3139 -> 0 bytes examples/resources/ranger_fd.png | Bin 6798 -> 0 bytes examples/resources/ranger_fl.png | Bin 2884 -> 0 bytes examples/resources/ranger_md.png | Bin 6182 -> 0 bytes examples/resources/ranger_ml.png | Bin 2803 -> 0 bytes examples/resources/textureshader.frag | 16 -- examples/resources/textureshader.vert | 20 --- examples/resources/wall.jpg | Bin 256989 -> 0 bytes examples/resources/wall.png | Bin 607366 -> 0 bytes examples/shooter/bullet.cpp | 33 ----- examples/shooter/bullet.h | 24 --- examples/shooter/direction.h | 11 -- examples/shooter/main.cpp | 171 ---------------------- examples/shooter/player.cpp | 72 --------- examples/shooter/player.h | 36 ----- examples/simple/main.cpp | 6 + examples/simple/resources/breast_black.png | Bin 0 -> 225 bytes examples/simple/resources/bullet.png | Bin 0 -> 1383 bytes examples/simple/resources/colourshader.frag | 10 ++ examples/simple/resources/colourshader.vert | 15 ++ examples/simple/resources/container.jpg | Bin 0 -> 184939 bytes examples/simple/resources/dngn_blood_fountain.png | Bin 0 -> 955 bytes examples/simple/resources/fighter_fd.png | Bin 0 -> 6467 bytes examples/simple/resources/fighter_fl.png | Bin 0 -> 2916 bytes examples/simple/resources/fighter_md.png | Bin 0 -> 6464 bytes examples/simple/resources/fighter_ml.png | Bin 0 -> 2843 bytes examples/simple/resources/healer_fd.png | Bin 0 -> 7862 bytes examples/simple/resources/healer_fl.png | Bin 0 -> 3256 bytes examples/simple/resources/healer_md.png | Bin 0 -> 6756 bytes examples/simple/resources/healer_ml.png | Bin 0 -> 2940 bytes examples/simple/resources/learnopenglshader.frag | 12 ++ examples/simple/resources/learnopenglshader.vert | 14 ++ examples/simple/resources/mage_fd.png | Bin 0 -> 7026 bytes examples/simple/resources/mage_fl.png | Bin 0 -> 3283 bytes examples/simple/resources/mage_md.png | Bin 0 -> 6794 bytes examples/simple/resources/mage_ml.png | Bin 0 -> 3139 bytes examples/simple/resources/ranger_fd.png | Bin 0 -> 6798 bytes examples/simple/resources/ranger_fl.png | Bin 0 -> 2884 bytes examples/simple/resources/ranger_md.png | Bin 0 -> 6182 bytes examples/simple/resources/ranger_ml.png | Bin 0 -> 2803 bytes examples/simple/resources/textureshader.frag | 16 ++ examples/simple/resources/textureshader.vert | 20 +++ examples/simple/resources/wall.jpg | Bin 0 -> 256989 bytes examples/simple/resources/wall.png | Bin 0 -> 607366 bytes examples/simplegame/main.cpp | 113 -------------- scripts/travis_build | 2 +- 66 files changed, 111 insertions(+), 553 deletions(-) delete mode 100644 examples/resources/breast_black.png delete mode 100644 examples/resources/bullet.png delete mode 100644 examples/resources/colourshader.frag delete mode 100644 examples/resources/colourshader.vert delete mode 100644 examples/resources/container.jpg delete mode 100644 examples/resources/dngn_blood_fountain.png delete mode 100644 examples/resources/fighter_fd.png delete mode 100644 examples/resources/fighter_fl.png delete mode 100644 examples/resources/fighter_md.png delete mode 100644 examples/resources/fighter_ml.png delete mode 100644 examples/resources/healer_fd.png delete mode 100644 examples/resources/healer_fl.png delete mode 100644 examples/resources/healer_md.png delete mode 100644 examples/resources/healer_ml.png delete mode 100644 examples/resources/learnopenglshader.frag delete mode 100644 examples/resources/learnopenglshader.vert delete mode 100644 examples/resources/mage_fd.png delete mode 100644 examples/resources/mage_fl.png delete mode 100644 examples/resources/mage_md.png delete mode 100644 examples/resources/mage_ml.png delete mode 100644 examples/resources/ranger_fd.png delete mode 100644 examples/resources/ranger_fl.png delete mode 100644 examples/resources/ranger_md.png delete mode 100644 examples/resources/ranger_ml.png delete mode 100644 examples/resources/textureshader.frag delete mode 100644 examples/resources/textureshader.vert delete mode 100644 examples/resources/wall.jpg delete mode 100644 examples/resources/wall.png delete mode 100644 examples/shooter/bullet.cpp delete mode 100644 examples/shooter/bullet.h delete mode 100644 examples/shooter/direction.h delete mode 100644 examples/shooter/main.cpp delete mode 100644 examples/shooter/player.cpp delete mode 100644 examples/shooter/player.h create mode 100644 examples/simple/main.cpp create mode 100644 examples/simple/resources/breast_black.png create mode 100644 examples/simple/resources/bullet.png create mode 100644 examples/simple/resources/colourshader.frag create mode 100644 examples/simple/resources/colourshader.vert create mode 100644 examples/simple/resources/container.jpg create mode 100644 examples/simple/resources/dngn_blood_fountain.png create mode 100644 examples/simple/resources/fighter_fd.png create mode 100644 examples/simple/resources/fighter_fl.png create mode 100644 examples/simple/resources/fighter_md.png create mode 100644 examples/simple/resources/fighter_ml.png create mode 100644 examples/simple/resources/healer_fd.png create mode 100644 examples/simple/resources/healer_fl.png create mode 100644 examples/simple/resources/healer_md.png create mode 100644 examples/simple/resources/healer_ml.png create mode 100644 examples/simple/resources/learnopenglshader.frag create mode 100644 examples/simple/resources/learnopenglshader.vert create mode 100644 examples/simple/resources/mage_fd.png create mode 100644 examples/simple/resources/mage_fl.png create mode 100644 examples/simple/resources/mage_md.png create mode 100644 examples/simple/resources/mage_ml.png create mode 100644 examples/simple/resources/ranger_fd.png create mode 100644 examples/simple/resources/ranger_fl.png create mode 100644 examples/simple/resources/ranger_md.png create mode 100644 examples/simple/resources/ranger_ml.png create mode 100644 examples/simple/resources/textureshader.frag create mode 100644 examples/simple/resources/textureshader.vert create mode 100644 examples/simple/resources/wall.jpg create mode 100644 examples/simple/resources/wall.png delete mode 100644 examples/simplegame/main.cpp diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 156b6a34..ec4c71e2 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,10 +1,22 @@ -function(make_example name) - +macro(make_example name) file(GLOB SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${name}/*.cpp) add_executable(${name} ${SOURCES}) target_link_libraries(${name} yage) +endmacro(make_example) + +macro(subdirlist result curdir) + file(GLOB children RELATIVE ${curdir} ${curdir}/*) + set(dirlist "") + foreach(child ${children}) + if(IS_DIRECTORY ${curdir}/${child}) + list(APPEND dirlist ${child}) + endif() + endforeach() + set(${result} ${dirlist}) +endmacro() -endfunction(make_example) +subdirlist(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR}) -make_example(simplegame) -make_example(shooter) +foreach(subdir ${SUBDIRS}) + make_example(${subdir}) +endforeach() diff --git a/examples/resources/breast_black.png b/examples/resources/breast_black.png deleted file mode 100644 index 180b292f..00000000 Binary files a/examples/resources/breast_black.png and /dev/null differ diff --git a/examples/resources/bullet.png b/examples/resources/bullet.png deleted file mode 100644 index 89e6289b..00000000 Binary files a/examples/resources/bullet.png and /dev/null differ diff --git a/examples/resources/colourshader.frag b/examples/resources/colourshader.frag deleted file mode 100644 index e49d1ebb..00000000 --- a/examples/resources/colourshader.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 fragment_colour; - -layout(location = 0) out vec4 colour; - -void main() -{ - colour = fragment_colour; -} diff --git a/examples/resources/colourshader.vert b/examples/resources/colourshader.vert deleted file mode 100644 index e5c10d77..00000000 --- a/examples/resources/colourshader.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec2 vertex_position; -layout(location = 1) in vec4 vertex_colour; - -layout(location = 0) out vec4 fragment_colour; - -uniform mat4 P; - -void main() -{ - gl_Position = vec4(vertex_position, 0.f, 1.f); - - fragment_colour = vertex_colour; -} diff --git a/examples/resources/container.jpg b/examples/resources/container.jpg deleted file mode 100644 index d07bee4e..00000000 Binary files a/examples/resources/container.jpg and /dev/null differ diff --git a/examples/resources/dngn_blood_fountain.png b/examples/resources/dngn_blood_fountain.png deleted file mode 100644 index 7214fd47..00000000 Binary files a/examples/resources/dngn_blood_fountain.png and /dev/null differ diff --git a/examples/resources/fighter_fd.png b/examples/resources/fighter_fd.png deleted file mode 100644 index ea576b4d..00000000 Binary files a/examples/resources/fighter_fd.png and /dev/null differ diff --git a/examples/resources/fighter_fl.png b/examples/resources/fighter_fl.png deleted file mode 100644 index 69b677ca..00000000 Binary files a/examples/resources/fighter_fl.png and /dev/null differ diff --git a/examples/resources/fighter_md.png b/examples/resources/fighter_md.png deleted file mode 100644 index 1b333abb..00000000 Binary files a/examples/resources/fighter_md.png and /dev/null differ diff --git a/examples/resources/fighter_ml.png b/examples/resources/fighter_ml.png deleted file mode 100644 index 74dca840..00000000 Binary files a/examples/resources/fighter_ml.png and /dev/null differ diff --git a/examples/resources/healer_fd.png b/examples/resources/healer_fd.png deleted file mode 100644 index 138e7c48..00000000 Binary files a/examples/resources/healer_fd.png and /dev/null differ diff --git a/examples/resources/healer_fl.png b/examples/resources/healer_fl.png deleted file mode 100644 index 8360cfb9..00000000 Binary files a/examples/resources/healer_fl.png and /dev/null differ diff --git a/examples/resources/healer_md.png b/examples/resources/healer_md.png deleted file mode 100644 index 20ce4d2f..00000000 Binary files a/examples/resources/healer_md.png and /dev/null differ diff --git a/examples/resources/healer_ml.png b/examples/resources/healer_ml.png deleted file mode 100644 index 28377d6b..00000000 Binary files a/examples/resources/healer_ml.png and /dev/null differ diff --git a/examples/resources/learnopenglshader.frag b/examples/resources/learnopenglshader.frag deleted file mode 100644 index 30919459..00000000 --- a/examples/resources/learnopenglshader.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 core -out vec4 FragColor; - -in vec4 ourColor; -in vec2 TexCoord; - -uniform sampler2D ourTexture; - -void main() -{ - FragColor = texture(ourTexture, TexCoord); -} diff --git a/examples/resources/learnopenglshader.vert b/examples/resources/learnopenglshader.vert deleted file mode 100644 index 7b24b5d7..00000000 --- a/examples/resources/learnopenglshader.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 core -layout (location = 0) in vec2 aPos; -layout (location = 1) in vec4 aColor; -layout (location = 2) in vec2 aTexCoord; - -out vec4 ourColor; -out vec2 TexCoord; - -void main() -{ - gl_Position = vec4(aPos, 0.0, 1.0); - ourColor = aColor; - TexCoord = aTexCoord; -} diff --git a/examples/resources/mage_fd.png b/examples/resources/mage_fd.png deleted file mode 100644 index b6a692f7..00000000 Binary files a/examples/resources/mage_fd.png and /dev/null differ diff --git a/examples/resources/mage_fl.png b/examples/resources/mage_fl.png deleted file mode 100644 index 66f5d2e5..00000000 Binary files a/examples/resources/mage_fl.png and /dev/null differ diff --git a/examples/resources/mage_md.png b/examples/resources/mage_md.png deleted file mode 100644 index 40838087..00000000 Binary files a/examples/resources/mage_md.png and /dev/null differ diff --git a/examples/resources/mage_ml.png b/examples/resources/mage_ml.png deleted file mode 100644 index d559fb56..00000000 Binary files a/examples/resources/mage_ml.png and /dev/null differ diff --git a/examples/resources/ranger_fd.png b/examples/resources/ranger_fd.png deleted file mode 100644 index e574cb1f..00000000 Binary files a/examples/resources/ranger_fd.png and /dev/null differ diff --git a/examples/resources/ranger_fl.png b/examples/resources/ranger_fl.png deleted file mode 100644 index 9bc31719..00000000 Binary files a/examples/resources/ranger_fl.png and /dev/null differ diff --git a/examples/resources/ranger_md.png b/examples/resources/ranger_md.png deleted file mode 100644 index 5803cbe6..00000000 Binary files a/examples/resources/ranger_md.png and /dev/null differ diff --git a/examples/resources/ranger_ml.png b/examples/resources/ranger_ml.png deleted file mode 100644 index e2e528b4..00000000 Binary files a/examples/resources/ranger_ml.png and /dev/null differ diff --git a/examples/resources/textureshader.frag b/examples/resources/textureshader.frag deleted file mode 100644 index ae12f4b0..00000000 --- a/examples/resources/textureshader.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 330 - -in vec2 fragment_position; -in vec4 fragment_colour; -in vec2 fragment_uv; - -out vec4 colour; - -uniform sampler2D texture_sampler; - -void main() -{ - vec4 texture_colour = texture(texture_sampler, fragment_uv); - - colour = texture_colour * fragment_colour; -} diff --git a/examples/resources/textureshader.vert b/examples/resources/textureshader.vert deleted file mode 100644 index 447c68d4..00000000 --- a/examples/resources/textureshader.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 330 - -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; - -uniform mat4 P; - -void main() -{ - gl_Position = vec4((P*vec4(vertex_position, 0.f, 1.f)).xy, 0.f, 1.f); - - fragment_position = vertex_position; - fragment_colour = vertex_colour; - fragment_uv = vec2(vertex_uv.x, 1-vertex_uv.y); -} diff --git a/examples/resources/wall.jpg b/examples/resources/wall.jpg deleted file mode 100644 index 49631987..00000000 Binary files a/examples/resources/wall.jpg and /dev/null differ diff --git a/examples/resources/wall.png b/examples/resources/wall.png deleted file mode 100644 index 3eb2cd6e..00000000 Binary files a/examples/resources/wall.png and /dev/null differ diff --git a/examples/shooter/bullet.cpp b/examples/shooter/bullet.cpp deleted file mode 100644 index c589b4db..00000000 --- a/examples/shooter/bullet.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "bullet.h" - -Bullet::Bullet(const glm::vec4 &bound, Direction dir, float speed, float depth) - : bound_(bound), dir_(dir), speed_(speed), depth_(depth) -{ -} - -void Bullet::draw(yage::SpriteBatch &sp) -{ - switch(dir_) { - case Direction::UP: - bound_.y += speed_; - break; - case Direction::DOWN: - bound_.y -= speed_; - break; - case Direction::LEFT: - bound_.x -= speed_; - break; - case Direction::RIGHT: - bound_.x += speed_; - break; - } - sp.draw( - bound_, {0, 0, 1, 1}, - yage::ResourceManager::getTexture("examples/resources/bullet.png").id, - yage::Colour(255, 255, 255, 255), depth_); -} - -glm::vec4 Bullet::position() const -{ - return bound_; -} diff --git a/examples/shooter/bullet.h b/examples/shooter/bullet.h deleted file mode 100644 index 19430fda..00000000 --- a/examples/shooter/bullet.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef EXAMPLES_SHOOTER_BULLET_H -#define EXAMPLES_SHOOTER_BULLET_H - -#include - -#include "direction.h" - -class Bullet : public yage::Drawable -{ -public: - Bullet(const glm::vec4 &bound, Direction dir, float speed, float depth = 0.f); - - void draw(yage::SpriteBatch &sp); - - // getters - glm::vec4 position() const; -private: - glm::vec4 bound_; - Direction dir_; - float speed_; - float depth_; -}; - -#endif diff --git a/examples/shooter/direction.h b/examples/shooter/direction.h deleted file mode 100644 index 010c6b54..00000000 --- a/examples/shooter/direction.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef EXAMPLES_SHOOTER_DIRECTION_H -#define EXAMPLES_SHOOTER_DIRECTION_H - -enum class Direction { - LEFT, - DOWN, - RIGHT, - UP, -}; - -#endif diff --git a/examples/shooter/main.cpp b/examples/shooter/main.cpp deleted file mode 100644 index 5d80c350..00000000 --- a/examples/shooter/main.cpp +++ /dev/null @@ -1,171 +0,0 @@ -#include - -#include "bullet.h" -#include "direction.h" -#include "player.h" - -#include -#include - -using std::cout; - -int main(int argc, char **argv) -{ - yage::init(); - yage::Window window; - window.create("Shooter example", 800, 600); - - std::vector> bullets; - - yage::Shader shader("examples/resources/textureshader.vert", - "examples/resources/textureshader.frag"); - - std::vector male_l = { - yage::ResourceManager::getTexture("examples/resources/fighter_ml.png", - 3, 4), - yage::ResourceManager::getTexture("examples/resources/ranger_ml.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/mage_ml.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/healer_ml.png", 3, - 4)}; - std::vector female_l = { - yage::ResourceManager::getTexture("examples/resources/fighter_fl.png", - 3, 4), - yage::ResourceManager::getTexture("examples/resources/ranger_fl.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/mage_fl.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/healer_fl.png", 3, - 4)}; - std::vector male_d = { - yage::ResourceManager::getTexture("examples/resources/fighter_md.png", - 3, 4), - yage::ResourceManager::getTexture("examples/resources/ranger_md.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/mage_md.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/healer_md.png", 3, - 4)}; - std::vector female_d = { - yage::ResourceManager::getTexture("examples/resources/fighter_fd.png", - 3, 4), - yage::ResourceManager::getTexture("examples/resources/ranger_fd.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/mage_fd.png", 3, - 4), - yage::ResourceManager::getTexture("examples/resources/healer_fd.png", 3, - 4)}; - - yage::SpriteBatch sp; - yage::Camera camera(800, 600); - - int i = 0; - int j = 0; - bool space_pressed = false; - bool c_pressed = false; - - shader.use(); - shader.setUniform("texture_sampler", 0); - - auto textures = male_l; - - Player player({400, 300, 48 * 2, 64 * 2}, textures.front()); - - while (!window.shouldClose()) { - window.pollEvents(); - - if (window.keyPressed(yage::key::D)) { - player.move(Direction::RIGHT); - } - if (window.keyPressed(yage::key::S)) { - player.move(Direction::DOWN); - } - if (window.keyPressed(yage::key::A)) { - player.move(Direction::LEFT); - } - if (window.keyPressed(yage::key::W)) { - player.move(Direction::UP); - } - if (!window.keyPressed(yage::key::D) && - !window.keyPressed(yage::key::S) && - !window.keyPressed(yage::key::A) && - !window.keyPressed(yage::key::W)) { - player.idle(); - } - if (window.keyPressed(yage::key::SPACE) && !space_pressed) { - space_pressed = true; - i = (i + 1) % textures.size(); - } - if (!window.keyPressed(yage::key::SPACE)) { - space_pressed = false; - } - if (window.keyPressed(yage::key::C) && !c_pressed) { - c_pressed = true; - j = (j + 1) % 4; - switch (j) { - case 0: - textures = male_l; - break; - case 1: - textures = male_d; - break; - case 2: - textures = female_l; - break; - case 3: - textures = female_d; - break; - } - } - if (!window.keyPressed(yage::key::C)) { - c_pressed = false; - } - - if (window.keyPressed(yage::key::RIGHT)) { - bullets.push_back(std::make_unique( - glm::vec4(player.position().x + player.position().z / 2.f, - player.position().y + player.position().w / 2.f, 25, - 25), - Direction::RIGHT, 10.f)); - player.look(Direction::RIGHT); - } else if (window.keyPressed(yage::key::DOWN)) { - bullets.push_back(std::make_unique( - glm::vec4(player.position().x + player.position().z / 2.f, - player.position().y + player.position().w / 2.f, 25, - 25), - Direction::DOWN, 10.f, 2)); - player.look(Direction::DOWN); - } else if (window.keyPressed(yage::key::LEFT)) { - bullets.push_back(std::make_unique( - glm::vec4(player.position().x + player.position().z / 2.f, - player.position().y + player.position().w / 2.f, 25, - 25), - Direction::LEFT, 10.f, 2)); - player.look(Direction::LEFT); - } else if (window.keyPressed(yage::key::UP)) { - bullets.push_back(std::make_unique( - glm::vec4(player.position().x + player.position().z / 2.f, - player.position().y + player.position().w / 2.f, 25, - 25), - Direction::UP, 10.f)); - player.look(Direction::UP); - } - - player.setTexture(textures[i]); - - camera.update(shader); - - window.clearBuffer(); - player.draw(sp); - - for (auto &&bullet : bullets) { - bullet->draw(sp); - } - - sp.render(); - - window.swapBuffer(); - } - yage::quit(); -} diff --git a/examples/shooter/player.cpp b/examples/shooter/player.cpp deleted file mode 100644 index dab743a9..00000000 --- a/examples/shooter/player.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include "player.h" - -Player::Player(const glm::vec4 &bound, const yage::Texture &texture) - : bound_(bound), texture_(texture), direction_(Direction::DOWN), - action_(Action::IDLE), speed_(4) -{ -} - -void Player::setTexture(const yage::Texture &texture) { - texture_ = texture; -} - -void Player::draw(yage::SpriteBatch &sp) -{ - static int time = 0; - static int iteration = 0; - float width = 1.f / static_cast(texture_.x); - float height = 1.f / static_cast(texture_.y); - - switch (action_) { - case Action::IDLE: - sp.draw(bound_, - {width, static_cast(direction_) * height, width, height}, - texture_.id, yage::Colour(255, 255, 255, 255), 1); - break; - case Action::MOVING: - if(time % 15 == 0) { - iteration = (iteration + 1) % 2; - } - sp.draw(bound_, - {iteration * 2 * width, static_cast(direction_) * height, width, height}, - texture_.id, yage::Colour(255, 255, 255, 255), 1); - time = (time + 1) % 59; - break; - } -} - -void Player::move(Direction direction) -{ - direction_ = direction; - action_ = Action::MOVING; - - switch (direction_) { - case Direction::LEFT: - bound_.x -= speed_; - break; - case Direction::DOWN: - bound_.y -= speed_; - break; - case Direction::RIGHT: - bound_.x += speed_; - break; - case Direction::UP: - bound_.y += speed_; - break; - } -} - -void Player::idle() -{ - action_ = Action::IDLE; -} - -void Player::look(Direction direction) -{ - direction_ = direction; -} - -glm::vec4 Player::position() const -{ - return bound_; -} diff --git a/examples/shooter/player.h b/examples/shooter/player.h deleted file mode 100644 index 8b5121c5..00000000 --- a/examples/shooter/player.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef EXAMPLE_SHOOTER_PLAYER_H -#define EXAMPLE_SHOOTER_PLAYER_H - -#include - -#include "direction.h" - -enum class Action { - IDLE, - MOVING, -}; - -class Player : public yage::Drawable -{ -public: - Player(const glm::vec4 &bound, const yage::Texture &texture); - - void setTexture(const yage::Texture &texture); - - void draw(yage::SpriteBatch &sp); - - void move(Direction direction); - void idle(); - void look(Direction direction); - - // simple getters - glm::vec4 position() const; -private: - glm::vec4 bound_; - yage::Texture texture_; - Direction direction_; - Action action_; - int speed_; -}; - -#endif diff --git a/examples/simple/main.cpp b/examples/simple/main.cpp new file mode 100644 index 00000000..0869f9b1 --- /dev/null +++ b/examples/simple/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + std::cout << "Hello world"; +} diff --git a/examples/simple/resources/breast_black.png b/examples/simple/resources/breast_black.png new file mode 100644 index 00000000..180b292f Binary files /dev/null and b/examples/simple/resources/breast_black.png differ diff --git a/examples/simple/resources/bullet.png b/examples/simple/resources/bullet.png new file mode 100644 index 00000000..89e6289b Binary files /dev/null and b/examples/simple/resources/bullet.png differ diff --git a/examples/simple/resources/colourshader.frag b/examples/simple/resources/colourshader.frag new file mode 100644 index 00000000..e49d1ebb --- /dev/null +++ b/examples/simple/resources/colourshader.frag @@ -0,0 +1,10 @@ +#version 450 + +layout(location = 0) in vec4 fragment_colour; + +layout(location = 0) out vec4 colour; + +void main() +{ + colour = fragment_colour; +} diff --git a/examples/simple/resources/colourshader.vert b/examples/simple/resources/colourshader.vert new file mode 100644 index 00000000..e5c10d77 --- /dev/null +++ b/examples/simple/resources/colourshader.vert @@ -0,0 +1,15 @@ +#version 450 + +layout(location = 0) in vec2 vertex_position; +layout(location = 1) in vec4 vertex_colour; + +layout(location = 0) out vec4 fragment_colour; + +uniform mat4 P; + +void main() +{ + gl_Position = vec4(vertex_position, 0.f, 1.f); + + fragment_colour = vertex_colour; +} diff --git a/examples/simple/resources/container.jpg b/examples/simple/resources/container.jpg new file mode 100644 index 00000000..d07bee4e Binary files /dev/null and b/examples/simple/resources/container.jpg differ diff --git a/examples/simple/resources/dngn_blood_fountain.png b/examples/simple/resources/dngn_blood_fountain.png new file mode 100644 index 00000000..7214fd47 Binary files /dev/null and b/examples/simple/resources/dngn_blood_fountain.png differ diff --git a/examples/simple/resources/fighter_fd.png b/examples/simple/resources/fighter_fd.png new file mode 100644 index 00000000..ea576b4d Binary files /dev/null and b/examples/simple/resources/fighter_fd.png differ diff --git a/examples/simple/resources/fighter_fl.png b/examples/simple/resources/fighter_fl.png new file mode 100644 index 00000000..69b677ca Binary files /dev/null and b/examples/simple/resources/fighter_fl.png differ diff --git a/examples/simple/resources/fighter_md.png b/examples/simple/resources/fighter_md.png new file mode 100644 index 00000000..1b333abb Binary files /dev/null and b/examples/simple/resources/fighter_md.png differ diff --git a/examples/simple/resources/fighter_ml.png b/examples/simple/resources/fighter_ml.png new file mode 100644 index 00000000..74dca840 Binary files /dev/null and b/examples/simple/resources/fighter_ml.png differ diff --git a/examples/simple/resources/healer_fd.png b/examples/simple/resources/healer_fd.png new file mode 100644 index 00000000..138e7c48 Binary files /dev/null and b/examples/simple/resources/healer_fd.png differ diff --git a/examples/simple/resources/healer_fl.png b/examples/simple/resources/healer_fl.png new file mode 100644 index 00000000..8360cfb9 Binary files /dev/null and b/examples/simple/resources/healer_fl.png differ diff --git a/examples/simple/resources/healer_md.png b/examples/simple/resources/healer_md.png new file mode 100644 index 00000000..20ce4d2f Binary files /dev/null and b/examples/simple/resources/healer_md.png differ diff --git a/examples/simple/resources/healer_ml.png b/examples/simple/resources/healer_ml.png new file mode 100644 index 00000000..28377d6b Binary files /dev/null and b/examples/simple/resources/healer_ml.png differ diff --git a/examples/simple/resources/learnopenglshader.frag b/examples/simple/resources/learnopenglshader.frag new file mode 100644 index 00000000..30919459 --- /dev/null +++ b/examples/simple/resources/learnopenglshader.frag @@ -0,0 +1,12 @@ +#version 450 core +out vec4 FragColor; + +in vec4 ourColor; +in vec2 TexCoord; + +uniform sampler2D ourTexture; + +void main() +{ + FragColor = texture(ourTexture, TexCoord); +} diff --git a/examples/simple/resources/learnopenglshader.vert b/examples/simple/resources/learnopenglshader.vert new file mode 100644 index 00000000..7b24b5d7 --- /dev/null +++ b/examples/simple/resources/learnopenglshader.vert @@ -0,0 +1,14 @@ +#version 450 core +layout (location = 0) in vec2 aPos; +layout (location = 1) in vec4 aColor; +layout (location = 2) in vec2 aTexCoord; + +out vec4 ourColor; +out vec2 TexCoord; + +void main() +{ + gl_Position = vec4(aPos, 0.0, 1.0); + ourColor = aColor; + TexCoord = aTexCoord; +} diff --git a/examples/simple/resources/mage_fd.png b/examples/simple/resources/mage_fd.png new file mode 100644 index 00000000..b6a692f7 Binary files /dev/null and b/examples/simple/resources/mage_fd.png differ diff --git a/examples/simple/resources/mage_fl.png b/examples/simple/resources/mage_fl.png new file mode 100644 index 00000000..66f5d2e5 Binary files /dev/null and b/examples/simple/resources/mage_fl.png differ diff --git a/examples/simple/resources/mage_md.png b/examples/simple/resources/mage_md.png new file mode 100644 index 00000000..40838087 Binary files /dev/null and b/examples/simple/resources/mage_md.png differ diff --git a/examples/simple/resources/mage_ml.png b/examples/simple/resources/mage_ml.png new file mode 100644 index 00000000..d559fb56 Binary files /dev/null and b/examples/simple/resources/mage_ml.png differ diff --git a/examples/simple/resources/ranger_fd.png b/examples/simple/resources/ranger_fd.png new file mode 100644 index 00000000..e574cb1f Binary files /dev/null and b/examples/simple/resources/ranger_fd.png differ diff --git a/examples/simple/resources/ranger_fl.png b/examples/simple/resources/ranger_fl.png new file mode 100644 index 00000000..9bc31719 Binary files /dev/null and b/examples/simple/resources/ranger_fl.png differ diff --git a/examples/simple/resources/ranger_md.png b/examples/simple/resources/ranger_md.png new file mode 100644 index 00000000..5803cbe6 Binary files /dev/null and b/examples/simple/resources/ranger_md.png differ diff --git a/examples/simple/resources/ranger_ml.png b/examples/simple/resources/ranger_ml.png new file mode 100644 index 00000000..e2e528b4 Binary files /dev/null and b/examples/simple/resources/ranger_ml.png differ diff --git a/examples/simple/resources/textureshader.frag b/examples/simple/resources/textureshader.frag new file mode 100644 index 00000000..ae12f4b0 --- /dev/null +++ b/examples/simple/resources/textureshader.frag @@ -0,0 +1,16 @@ +#version 330 + +in vec2 fragment_position; +in vec4 fragment_colour; +in vec2 fragment_uv; + +out vec4 colour; + +uniform sampler2D texture_sampler; + +void main() +{ + vec4 texture_colour = texture(texture_sampler, fragment_uv); + + colour = texture_colour * fragment_colour; +} diff --git a/examples/simple/resources/textureshader.vert b/examples/simple/resources/textureshader.vert new file mode 100644 index 00000000..447c68d4 --- /dev/null +++ b/examples/simple/resources/textureshader.vert @@ -0,0 +1,20 @@ +#version 330 + +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; + +uniform mat4 P; + +void main() +{ + gl_Position = vec4((P*vec4(vertex_position, 0.f, 1.f)).xy, 0.f, 1.f); + + fragment_position = vertex_position; + fragment_colour = vertex_colour; + fragment_uv = vec2(vertex_uv.x, 1-vertex_uv.y); +} diff --git a/examples/simple/resources/wall.jpg b/examples/simple/resources/wall.jpg new file mode 100644 index 00000000..49631987 Binary files /dev/null and b/examples/simple/resources/wall.jpg differ diff --git a/examples/simple/resources/wall.png b/examples/simple/resources/wall.png new file mode 100644 index 00000000..3eb2cd6e Binary files /dev/null and b/examples/simple/resources/wall.png differ diff --git a/examples/simplegame/main.cpp b/examples/simplegame/main.cpp deleted file mode 100644 index bea3bc8d..00000000 --- a/examples/simplegame/main.cpp +++ /dev/null @@ -1,113 +0,0 @@ -/** --------------------------------------------------------------------------- - * @file: simplegame.cpp - * - * Copyright (c) 2017 Yann Herklotz Grave - * MIT License, see LICENSE file for more details. - * ---------------------------------------------------------------------------- - */ - -#include - -#include -#include -#include - -using std::cout; - -using namespace yage; - -int main() -{ - yage::init(); - Logger logger; - srand(time(nullptr)); - Window window; - window.create("Simple Game", 1920, 1080); - - Shader textureProgram("examples/resources/textureshader.vert", - "examples/resources/textureshader.frag"); - SpriteBatch sp; - - Texture fountain = ResourceManager::getTexture( - "examples/resources/dngn_blood_fountain.png"); - Texture breast_plate = - ResourceManager::getTexture("examples/resources/breast_black.png"); - - Texture brick = ResourceManager::getTexture("examples/resources/wall.png"); - - yLogDebug << "texture: " << brick.width << ", " << brick.height; - - Camera camera(1920, 1080); - textureProgram.use(); - textureProgram.setUniform("texture_sampler", 0); - - double prev_time = glfwGetTime(); - double final_time = 0; - double diff = 0; - double fps = 0; - int i = 0; - double time; - - while (!window.shouldClose()) { - window.clearBuffer(); - Texture texture = fountain; - - window.pollEvents(); - if (window.keyPressed(yage::key::SPACE)) { - cout << "Pressed A" << '\n'; - } - if (window.keyPressed(yage::key::E)) { - texture = breast_plate; - } - if (window.keyPressed(yage::key::EQUAL)) { - camera.zoom(0.1f); - } - if (window.keyPressed(yage::key::MINUS)) { - camera.zoom(-0.1f); - } - if (window.keyPressed(yage::key::LEFT)) { - camera.move({-5.f, 0.f}); - } - if (window.keyPressed(yage::key::RIGHT)) { - camera.move({5.f, 0.f}); - } - if (window.keyPressed(yage::key::UP)) { - camera.move({0.f, 5.f}); - } - if (window.keyPressed(yage::key::DOWN)) { - camera.move({0.f, -5.f}); - } - - camera.update(textureProgram); - - int amount = 10; - time = glfwGetTime(); - for (int i = 0; i < 1920 / amount; i++) { - for (int j = 0; j < 1080 / amount; j++) - sp.draw({(float)(amount * i), (float)(amount * j), - (float)amount, (float)amount}, - {0.f, 0.f, 1.f, 1.f}, texture.id, - Colour(rand() % 256, rand() % 256, rand() % 256, 255), - 0); - } - - sp.draw({50, 50, 100, 100}, {0, 0, 1, 1}, brick.id, - Colour(255, 255, 255, 255), 1); - yLogDebug << "draw: " << glfwGetTime() - time; - - time = glfwGetTime(); - sp.render(); - yLogDebug << "render: " << glfwGetTime() - time; - window.swapBuffer(); - - if (i == 0) { - final_time = glfwGetTime(); - diff = final_time - prev_time; - prev_time = final_time; - fps = 1 / diff * 30; - yLogInfo << "fps: " << fps; - } - i = (i + 1) % 30; - } - yage::quit(); -} diff --git a/scripts/travis_build b/scripts/travis_build index e60088c8..7da8a258 100755 --- a/scripts/travis_build +++ b/scripts/travis_build @@ -12,7 +12,7 @@ cd $TRAVIS_BUILD_DIR # start building mkdir -p build cd build -cmake -DYAGE_BUILD_TESTS=ON -DYAGE_BUILD_DOCS=ON .. +cmake -DYAGE_BUILD_TESTS=ON -DYAGE_BUILD_DOCS=ON -DYAGE_BUILD_EXAMPLES=ON .. make cd tests ctest -j 2 --schedule-random --repeat-until-fail 3 -- cgit