Rendering Engine 0.2.9
Modular Graphics Rendering Engine | v0.2.9
rectangle_2d.cpp
Go to the documentation of this file.
1#include "rectangle_2d.hpp"
2#include "camera_2d.hpp"
3#include "scene.hpp"
4
5namespace rendering_engine
6{
7Rectangle2D::Rectangle2D(RenderResourceContext renderContext, Scene& scene, Properties properties)
8 :
9 Drawable2D(renderContext, scene),
10 mProperties(properties)
11{}
12
13void Rectangle2D::Initialize()
14{
15 const std::string meshName = "Quad2D";
16 const std::string materialName = "Rectangle2D";
17
18 AddRenderBatch(meshName, materialName);
19
20 Drawable2D::Initialize();
21
22 SetColor(mProperties.color);
23 SetScale(mProperties.size);
24}
25
26void Rectangle2D::Update(float deltaTime)
27{
28 Drawable2D::Update(deltaTime);
29}
30
31void Rectangle2D::Draw(const Camera2D& camera)
32{
33 Transformations2D transformations;
34 transformations.model = GetTransform().GetWorldMatrix();
35 transformations.view = camera.GetWorldView();
36 transformations.proj = camera.GetProjectionMatrix();
37
38 for (auto& renderBatch : mRenderBatches)
39 {
40 renderBatch.renderResources->SubmitResources(transformations, renderBatch.materialParameters);
41 }
42}
43
44void Rectangle2D::SetColor(glm::vec4 color)
45{
46 for (auto& renderBatch : mRenderBatches)
47 {
48 renderBatch.materialParameters.SetMaterialVec4("Color", color);
49 }
50}
51
52
53} // namespace rendering_engine
Rectangle2D(RenderResourceContext renderContext, Scene &scene, Properties properties)
Constructs the Rectangle2D with a render context.
Definition: rectangle_2D.cpp:7
class RE_API Camera2D
Definition: drawable_2d.hpp:14
Configuration parameters for a text block.