From 3e9037ed92d2a031a2d04e574d54a4b8b6db2568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Tue, 8 Jun 2021 16:10:20 +0200 Subject: [PATCH] renaming shaderDrawable to shaderDrawable 2d --- sources/Component/Shaders/ShaderComponent.cpp | 2 +- sources/Component/Shaders/ShaderComponent.hpp | 10 ++++----- sources/Runner/Runner.cpp | 16 ++++++++------ sources/System/Renderer/RenderSystem.cpp | 21 ++++++++++--------- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/sources/Component/Shaders/ShaderComponent.cpp b/sources/Component/Shaders/ShaderComponent.cpp index a87068b6..1b28a5bd 100644 --- a/sources/Component/Shaders/ShaderComponent.cpp +++ b/sources/Component/Shaders/ShaderComponent.cpp @@ -42,7 +42,7 @@ namespace BBM { } - ShaderComponentDrawable::ShaderComponentDrawable(WAL::Entity &entity, std::string fragmentFilePath, std::string vertexFilePath) + ShaderComponentDrawable2D::ShaderComponentDrawable2D(WAL::Entity &entity, std::string fragmentFilePath, std::string vertexFilePath) : ShaderComponent(entity, std::move(fragmentFilePath), std::move(vertexFilePath)) { } diff --git a/sources/Component/Shaders/ShaderComponent.hpp b/sources/Component/Shaders/ShaderComponent.hpp index c20a7e6c..4b541d0c 100644 --- a/sources/Component/Shaders/ShaderComponent.hpp +++ b/sources/Component/Shaders/ShaderComponent.hpp @@ -62,17 +62,17 @@ namespace BBM ShaderComponentModel &operator=(const ShaderComponentModel &) = delete; }; - class ShaderComponentDrawable : public ShaderComponent + class ShaderComponentDrawable2D : public ShaderComponent { public: //! @brief ctor //! @note use empty string to omit a file - ShaderComponentDrawable(WAL::Entity &entity, std::string fragmentFilePath, std::string vertexFilePath = ""); + ShaderComponentDrawable2D(WAL::Entity &entity, std::string fragmentFilePath, std::string vertexFilePath = ""); //! @brief Default copy ctor - ShaderComponentDrawable(const ShaderComponentDrawable &) = default; + ShaderComponentDrawable2D(const ShaderComponentDrawable2D &) = default; //! @brief Default dtor - ~ShaderComponentDrawable() override = default; + ~ShaderComponentDrawable2D() override = default; //! @brief Default assignment operator - ShaderComponentDrawable &operator=(const ShaderComponentDrawable &) = delete; + ShaderComponentDrawable2D &operator=(const ShaderComponentDrawable2D &) = delete; }; } \ No newline at end of file diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index 79b112d3..6be5b05d 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -8,6 +8,7 @@ #include "System/Renderer/RenderSystem.hpp" #include #include +#include #include #include #include @@ -24,12 +25,14 @@ #include #include #include +#include #include "Component/Animation/AnimationsComponent.hpp" #include "System/Animation/AnimationsSystem.hpp" #include "Component/Shaders/ShaderComponent.hpp" #include "Map/Map.hpp" namespace RAY3D = RAY::Drawables::Drawables3D; +namespace RAY2D = RAY::Drawables::Drawables2D; namespace BBM { @@ -70,7 +73,7 @@ namespace BBM .addComponent() .addComponent() .addComponent() - .addComponent("assets/shaders/glsl330/grayscale.fs") + .addComponent("assets/shaders/glsl330/predator.fs") .addComponent(RAY::ModelAnimations("assets/player/player.iqm"), 3) .addComponent(1) .addComponent() @@ -81,15 +84,16 @@ namespace BBM scene->addEntity("camera") .addComponent(8, 20, 7) .addComponent(Vector3f(8, 0, 8)); - scene->addEntity("cube") + /*scene->addEntity("cube") .addComponent(5, 0, 5) - .addComponent("assets/shaders/glsl330/grayscale.fs") - .addComponent(Vector3f(-5, 0, -5), Vector3f(3, 3, 3), RED) + .addComponent("assets/shaders/glsl330/grayscale.fs") + //.addComponent(Vector3f(-5, 0, -5), Vector3f(3, 3, 3), RED) + .addComponent(BBM::Vector2f{200,200}, BBM::Vector2f{200, 200}, RED) .addComponent() .addComponent() - .addComponent(WAL::Callback(), &MapGenerator::wallCollide, 3); + .addComponent(WAL::Callback(), &MapGenerator::wallCollide, 3); */ std::srand(std::time(nullptr)); - //MapGenerator::loadMap(16, 16, MapGenerator::createMap(16, 16), scene); + MapGenerator::loadMap(16, 16, MapGenerator::createMap(16, 16), scene); return scene; } diff --git a/sources/System/Renderer/RenderSystem.cpp b/sources/System/Renderer/RenderSystem.cpp index 5ebfe531..3796f2c3 100644 --- a/sources/System/Renderer/RenderSystem.cpp +++ b/sources/System/Renderer/RenderSystem.cpp @@ -30,33 +30,34 @@ namespace BBM this->_window.clear(); this->_window.useCamera(this->_camera); - for (auto &[_, pos, drawable] : this->_wal.scene->view()) { - auto *modelShader = _.tryGetComponent(); - auto *shader = _.tryGetComponent(); + for (auto &[entity, pos, drawable] : this->_wal.scene->view()) { + auto *modelShader = entity.tryGetComponent(); if (modelShader) { auto &model = dynamic_cast(*drawable.drawable); model.setShader(modelShader->getShader()); } - if (shader) { - RAY::Shader::BeginUsingCustomShader(shader->getShader()); - } drawable.drawable->setPosition(pos.position); drawable.drawable->drawOn(this->_window); if (modelShader) { auto &model = dynamic_cast(*drawable.drawable); model.resetShader(); } - if (shader) { - RAY::Shader::EndUsingCustomShader(); - } } this->_window.unuseCamera(); // TODO sort entities based on the Z axis - for (auto &[_, pos, drawable] : this->_wal.scene->view()) { + for (auto &[entity, pos, drawable] : this->_wal.scene->view()) { + auto *shader = entity.tryGetComponent(); + + if (shader) { + RAY::Shader::BeginUsingCustomShader(shader->getShader()); + } drawable.drawable->setPosition(Vector2f(pos.position.x, pos.position.y)); drawable.drawable->drawOn(this->_window); + if (shader) { + RAY::Shader::EndUsingCustomShader(); + } } if (this->_debugMode) this->_window.drawFPS(Vector2f());