4 #ifndef _TEXT_TEXTUREFONT_H
5 #define _TEXT_TEXTUREFONT_H
13 #include <unordered_map>
26 struct FT_LibraryRec_;
27 struct FT_StrokerRec_;
41 void MeasureString(
const std::string &str,
float &w,
float &h);
43 int PickCharacter(
const std::string &str,
float mouseX,
float mouseY);
91 Uint32 CleanVertexBufferCache();
101 std::map<FontConfig::Face, std::pair<FT_Face, RefCountedPtr<FileSystem::FileData>>> m_faces;
103 Glyph BakeGlyph(Uint32 chr);
105 float GetKern(
const Glyph &a,
const Glyph &b);
110 std::unique_ptr<Graphics::Material> m_mat;
113 static int s_glyphCount;
115 std::map<Uint32, Glyph> m_glyphs;
118 unsigned int m_atlasU;
119 unsigned int m_atlasV;
120 unsigned int m_atlasVIncrement;
125 std::vector<unsigned char> m_buf;
126 int m_bufWidth, m_bufHeight;
129 typedef std::unordered_map<std::string, std::pair<double, RefCountedPtr<Graphics::VertexBuffer>>> VBHashMap;
130 typedef VBHashMap::iterator VBHashMapIter;
131 typedef VBHashMap::const_iterator VBHashMapConstIter;
132 VBHashMap m_vbTextCache;
133 double m_lfLastCacheCleanTime;
struct FT_FaceRec_ * FT_Face
Definition: TextureFont.h:28
struct FT_LibraryRec_ * FT_Library
Definition: TextureFont.h:29
struct FT_StrokerRec_ * FT_Stroker
Definition: TextureFont.h:30
Definition: Material.h:81
Definition: RenderState.h:25
Definition: Renderer.h:39
Definition: VertexArray.h:19
Definition: VertexBuffer.h:80
Definition: RefCounted.h:11
Definition: FontConfig.h:13
Definition: TextureFont.h:34
void MeasureString(const std::string &str, float &w, float &h)
Definition: TextureFont.cpp:67
Graphics::Material * GetMaterial() const
Definition: TextureFont.h:84
Graphics::VertexBuffer * GetCachedVertexBuffer(const std::string &str)
Definition: TextureFont.cpp:348
static int GetGlyphCount()
Definition: TextureFont.h:80
Color PopulateMarkup(Graphics::VertexArray &va, const std::string &str, const float x, const float y, const Color &color=Color::WHITE)
Definition: TextureFont.cpp:245
~TextureFont()
Definition: TextureFont.cpp:645
float GetHeight() const
Definition: TextureFont.h:52
void PopulateString(Graphics::VertexArray &va, const std::string &str, const float x, const float y, const Color &color=Color::WHITE)
Definition: TextureFont.cpp:197
TextureFont(const FontConfig &config, Graphics::Renderer *renderer, float scale=1.0f)
Definition: TextureFont.cpp:579
static void ClearGlyphCount()
Definition: TextureFont.h:81
const Glyph & GetGlyph(Uint32 ch)
Definition: TextureFont.cpp:393
void MeasureCharacterPos(const std::string &str, int charIndex, float &x, float &y)
Definition: TextureFont.cpp:104
float GetDescender() const
Definition: TextureFont.h:54
int PickCharacter(const std::string &str, float mouseX, float mouseY)
Definition: TextureFont.cpp:138
Graphics::VertexBuffer * CreateVertexBuffer(const Graphics::VertexArray &va, const bool bIsStatic) const
Definition: TextureFont.cpp:311
RefCountedPtr< Graphics::Texture > GetTexture() const
Definition: TextureFont.h:83
void RenderBuffer(Graphics::VertexBuffer *vb, const Color &color=Color::WHITE)
Definition: TextureFont.cpp:189
Definition: IniConfig.h:10
Definition: Background.h:13
TextureFormat
Definition: Texture.h:14
Definition: GuiLabel.h:12
static const Color4ub WHITE
Definition: Color.h:141
Definition: FontConfig.h:18
Definition: TextureFont.h:56
int offX
Definition: TextureFont.h:73
float texWidth
Definition: TextureFont.h:72
float height
Definition: TextureFont.h:71
float advY
Definition: TextureFont.h:70
float texHeight
Definition: TextureFont.h:72
FT_Face ftFace
Definition: TextureFont.h:75
Uint32 ftIndex
Definition: TextureFont.h:76
float offU
Definition: TextureFont.h:74
float width
Definition: TextureFont.h:71
float offV
Definition: TextureFont.h:74
float advX
Definition: TextureFont.h:70
Glyph()
Definition: TextureFont.h:57
int offY
Definition: TextureFont.h:73