7 #include "VectorMathDecl.h"
10 #include "ScratchGeometry.h"
12 #include "FontCharacter.h"
13 #include "StringEntry.h"
14 #include "CharacterEntry.h"
23 struct TextMeshBuilderResult;
27 struct CharacterEntry;
40 virtual void Reserve(
size_t characterCount);
42 virtual bool HasValidGeometry()
const
44 return !m_characterEntries.empty();
47 virtual void AddText(
const std::vector<u32>& textUtf32,
const Eegeo::m44& transform,
float fontSize,
float xOffset,
float yOffset,
float altitudeOffset,
float& out_endX);
50 virtual void AddCustomQuads(
const std::vector<Rendering::VertexTypes::TextVertex>& vertices,
52 int customGeometryPageIndex);
57 virtual void AddTextGeometry(std::vector<Internal::CharacterEntry>::const_iterator characterRangeBegin,
60 const m44& reverseSideTransform,
67 void BuildGeometryForPage(
68 std::vector<Internal::CharacterEntry>::const_iterator characterRangeBegin,
70 bool shadowed,
bool doubleSided,
float shadowOffsetMeters,
77 const std::string& debugName);
79 std::deque<Internal::StringEntry> m_stringEntries;
80 std::vector<Internal::CharacterEntry> m_characterEntries;
81 std::vector<int> m_pageCharacterCounts;
84 std::vector<Geometry::Bounds2D> m_scratchBounds;
86 std::vector<Rendering::VertexTypes::TextVertex> m_customVertices;
87 int m_customGeometryPageIndex;
91 float m_oneOverFontHeight;
92 float m_oneOverScaleW;
93 float m_oneOverScaleH;