Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
dyntext.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <memory>
5
6#include "client/core.hpp"
7#include "client/shader.hpp"
11
12namespace gui::widget {
13
14class DynText : public Widget {
15public:
16 using Ptr = std::unique_ptr<DynText>;
17 static std::unique_ptr<Shader> shader;
18
19 struct Options {
21 font(font), size(size), color(font::getRGB(color)) {}
24
27 glm::vec3 color;
28 };
29
40 template <typename... Params>
41 static Ptr make(Params&&... params) {
42 return std::make_unique<DynText>(std::forward<Params>(params)...);
43 }
44
45 DynText(glm::vec2 origin, const std::string& text, std::shared_ptr<gui::font::Loader> loader, Options options);
46 DynText(const std::string& text, std::shared_ptr<gui::font::Loader> loader, Options options);
47
48 void render() override;
49
50 void changeColor(font::Color new_color);
51
52 void changeText(const std::string& new_text);
53
54private:
55 Options options;
56 std::string text;
57 std::shared_ptr<gui::font::Loader> fonts;
58
59 unsigned int VAO;
60 unsigned int VBO;
61
67 void _calculateSize();
68};
69
70}
Definition: dyntext.hpp:14
void changeColor(font::Color new_color)
Definition: dyntext.cpp:90
std::unique_ptr< DynText > Ptr
Definition: dyntext.hpp:16
static Ptr make(Params &&... params)
creates a DynText unique ptr widget
Definition: dyntext.hpp:41
void render() override
======================================================================================
Definition: dyntext.cpp:38
static std::unique_ptr< Shader > shader
Definition: dyntext.hpp:17
void changeText(const std::string &new_text)
Definition: dyntext.cpp:94
Definition: widget.hpp:41
glm::vec2 origin
Origin position (bottom left) of the widget in GUI coordinates.
Definition: widget.hpp:217
GLuint color
Definition: glad.h:2250
GLenum const GLfloat * params
Definition: glad.h:1522
GLsizeiptr size
Definition: glad.h:1803
Size
Definition: font.hpp:49
Color
Definition: font.hpp:33
Font
Definition: font.hpp:15
Definition: centertext.hpp:6
Definition: dyntext.hpp:19
Options(font::Font font, font::Size size, glm::vec3 color)
Definition: dyntext.hpp:22
Options(font::Font font, font::Size size, font::Color color)
Definition: dyntext.hpp:20
font::Font font
Definition: dyntext.hpp:25
glm::vec3 color
Definition: dyntext.hpp:27