Bomberman
ShaderComponent.hpp
Go to the documentation of this file.
1 //
2 // Created by cbihan on 03/06/2021.
3 //
4 
5 #pragma once
6 
7 #include <string>
8 #include <Models/Callback.hpp>
10 #include <Entity/Entity.hpp>
11 #include <Shaders/Shaders.hpp>
12 #include <Model/Model.hpp>
13 #include <chrono>
14 #include <Wal.hpp>
15 
16 namespace BBM
17 {
19  {
20  public:
24  std::string fragmentFilePath;
26  std::string vertexFilePath;
27 
30 
33 
35  WAL::Component *clone(WAL::Entity &entity) const override;
36 
38  std::string getFragmentFilePath() const;
39 
40 
42  std::string getVertexFilePath() const;
43 
47  const std::string &fragmentFilePath,
48  const std::string &vertexFilePath = "",
50  bool lonely = false);
51 
53  ShaderComponent(const ShaderComponent &) = default;
54 
56  ~ShaderComponent() override = default;
57 
59  ShaderComponent &operator=(const ShaderComponent &) = delete;
60  };
61 
63  {
64  public:
66 
67  void onStart() override;
68 
72  const std::string &fragmentFilePath,
73  const std::string &vertexFilePath = "",
75  bool lonely = false);
76 
78  ShaderComponentModel(const ShaderComponentModel &) = default;
79 
81  ~ShaderComponentModel() override = default;
82 
85  };
86 
88  {
89  public:
93  const std::string &fragmentFilePath,
94  const std::string &vertexFilePath = "",
96  bool lonely = false);
97 
100 
102  ~ShaderComponentDrawable2D() override = default;
103 
106  };
107 }
BBM::ShaderComponentDrawable2D
Definition: ShaderComponent.hpp:87
BBM::ShaderComponentModel::~ShaderComponentModel
~ShaderComponentModel() override=default
Default dtor.
Callback.hpp
BBM::ShaderComponentDrawable2D::ShaderComponentDrawable2D
ShaderComponentDrawable2D(WAL::Entity &entity, const std::string &fragmentFilePath, const std::string &vertexFilePath="", const WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds > &onFixedUpdate=WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds >(), bool lonely=false)
ctor
Definition: ShaderComponent.cpp:62
WAL::Component
Represent a single component of WAL.
Definition: Component.hpp:17
BBM::ShaderComponent::ShaderComponent
ShaderComponent(WAL::Entity &entity, const std::string &fragmentFilePath, const std::string &vertexFilePath="", const WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds > &onFixedUpdate=WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds >(), bool lonely=false)
ctor
Definition: ShaderComponent.cpp:22
BBM
Definition: AnimationsComponent.cpp:9
Entity.hpp
WAL::Entity
An entity of the WAL's ECS.
Definition: Entity.hpp:20
BBM::ShaderComponent::getFragmentFilePath
std::string getFragmentFilePath() const
get the fragment file path
Definition: ShaderComponent.cpp:35
BBM::ShaderComponent::shader
RAY::Shader shader
The shader to be applied.
Definition: ShaderComponent.hpp:22
BBM::ShaderComponent
Definition: ShaderComponent.hpp:18
Component.hpp
BBM::ShaderComponent::operator=
ShaderComponent & operator=(const ShaderComponent &)=delete
Default assignment operator.
WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds >
BBM::ShaderComponent::getShader
RAY::Shader & getShader()
getter for _shader
Definition: ShaderComponent.cpp:17
BBM::ShaderComponentModel
Definition: ShaderComponent.hpp:62
BBM::ShaderComponentDrawable2D::operator=
ShaderComponentDrawable2D & operator=(const ShaderComponentDrawable2D &)=delete
Default assignment operator.
BBM::ShaderComponent::vertexFilePath
std::string vertexFilePath
The path to the vertex file.
Definition: ShaderComponent.hpp:26
BBM::ShaderComponent::~ShaderComponent
~ShaderComponent() override=default
Default dtor.
Model.hpp
BBM::ShaderComponentModel::model
RAY::Drawables::Drawables3D::Model * model
Definition: ShaderComponent.hpp:65
Wal.hpp
BBM::ShaderComponentModel::ShaderComponentModel
ShaderComponentModel(WAL::Entity &entity, const std::string &fragmentFilePath, const std::string &vertexFilePath="", const WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds > &onFixedUpdate=WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds >(), bool lonely=false)
ctor
Definition: ShaderComponent.cpp:45
RAY::Drawables::Drawables3D::Model
Basic 3D Model type.
Definition: Model.hpp:23
BBM::ShaderComponentDrawable2D::~ShaderComponentDrawable2D
~ShaderComponentDrawable2D() override=default
Default dtor.
BBM::ShaderComponentModel::onStart
void onStart() override
The entity or this component has just been enabled.
Definition: ShaderComponent.cpp:54
BBM::ShaderComponent::clone
WAL::Component * clone(WAL::Entity &entity) const override
Clone a component for another or the same entity.
Definition: ShaderComponent.cpp:12
BBM::ShaderComponent::fragmentFilePath
std::string fragmentFilePath
The path to the fragment file.
Definition: ShaderComponent.hpp:24
BBM::ShaderComponentModel::operator=
ShaderComponentModel & operator=(const ShaderComponentModel &)=delete
Default assignment operator.
RAY::Shader
Definition: Shaders.hpp:16
Shaders.hpp
BBM::ShaderComponent::getVertexFilePath
std::string getVertexFilePath() const
get the fragment file path
Definition: ShaderComponent.cpp:40
BBM::ShaderComponent::update
WAL::Callback< WAL::Entity &, WAL::Wal &, std::chrono::nanoseconds > update
the function called to update shaders vars
Definition: ShaderComponent.hpp:29