mirror of
https://github.com/devZoGok/vb01.git
synced 2026-08-26 19:43:30 +00:00
49 lines
993 B
C++
Executable File
49 lines
993 B
C++
Executable File
#ifndef TEXT_H
|
|
#define TEXT_H
|
|
|
|
#include<string>
|
|
#include<vector>
|
|
#include"vector.h"
|
|
#include"util.h"
|
|
|
|
namespace vb01{
|
|
class Node;
|
|
class Texture;
|
|
class Shader;
|
|
|
|
class Text{
|
|
public:
|
|
struct Glyph{
|
|
u32 ch;
|
|
Texture *texture = nullptr;
|
|
u32 advance;
|
|
Vector2 size, bearing;
|
|
};
|
|
|
|
Text(std::string, std::string);
|
|
~Text();
|
|
void update();
|
|
void setText(std::string);
|
|
float getCharWidth(char);
|
|
inline Node* getNode(){return node;}
|
|
inline void setNode(Node *node){this->node = node;}
|
|
inline void setScale(float s){this->scale = s;}
|
|
inline void setColor(Vector4 c){this->color = c;}
|
|
inline int getLength(){return entry.length();}
|
|
inline std::string getText(){return entry;}
|
|
private:
|
|
void initFont(std::string);
|
|
void renderGlyphs();
|
|
|
|
Node *node = nullptr;
|
|
std::string entry;
|
|
std::vector<Glyph> characters;
|
|
Shader *shader = nullptr;
|
|
unsigned int VAO, VBO;
|
|
float scale = 1;
|
|
Vector4 color = Vector4::VEC_IJKL;
|
|
};
|
|
}
|
|
|
|
#endif
|