OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
uirenderer.hpp
Go to the documentation of this file.
1
5#pragma once
6
7#include "../app.hpp"
8#include "../ecs/system.hpp"
9
11#include "../ui/text.hpp"
12#include "../ui/element.hpp"
13#include "../ui/action.hpp"
14
15namespace Engine::Render {
20 class UIRenderer : public ECS::System {
21 private:
22 GLuint mTextVAO, mTextVBO;
23 GLuint mElementVAO, mElementVBO;
24
25 glm::vec2 GetTransformedPosition(UI::Text text, Scene::Transform transform);
26 bool IsPointInside(glm::vec2 point, glm::vec2 targetPosition, glm::vec2 targetSize);
27
28 void PrintText(UI::Text text, Scene::Transform transform, glm::mat4 projection);
29 void DrawElement(UI::Element element, Scene::Transform transform, glm::mat4 projection);
30
31 public:
37 UIRenderer();
44
52 void OnUpdate(float dt) override;
58 void OnUIRender() override;
59 };
60}
Définit une action d'interface utilisateur.
Définit la classe App qui est le point d'entrée d'une application dans le moteur.
La classe System implémente une logique spécifique à des composants.
Definition system.hpp:24
void OnUIRender() override
Lifecycle de l'app.
Definition uirenderer.cpp:184
void OnUpdate(float dt) override
Lifecycle de l'app.
Definition uirenderer.cpp:144
UIRenderer()
Construit un objet UIRenderer.
Definition uirenderer.cpp:15
~UIRenderer()
Détruit l'objet UIRenderer.
Definition uirenderer.cpp:58
Definition debugrenderer.cpp:17
Cette structure de donnée permet la gestion d'une entité dans l'espace.
Definition transform.hpp:21
Définit un component "Element" à ajouter à une entité pour créer des interfaces.
Definition element.hpp:22
Définit un component "Text" à ajouter à une entité pour créer des interfaces.
Definition text.hpp:23
Définit la manière dont le Système se comporte dans l'architecture ECS.
Définit les élements nécessaires pour gérer des textes.