15
15
namespace Siege
16
16
{
17
17
18
- void TextRenderer::Initialise (const char * defaultTextPath, const String& globalDataAttributeName)
18
+ void TextRenderer::Initialise (const String& globalDataAttributeName)
19
19
{
20
20
using Vulkan::Material;
21
21
using Vulkan::Mesh;
22
22
using Vulkan::Shader;
23
23
24
24
globalDataId = INTERN_STR (globalDataAttributeName);
25
25
26
- defaultFont = Vulkan::Font (defaultTextPath );
26
+ defaultTexture = Vulkan::Texture2D ( " default " );
27
27
28
28
defaultMaterial =
29
29
Material (Shader::Builder ()
@@ -40,7 +40,7 @@ void TextRenderer::Initialise(const char* defaultTextPath, const String& globalD
40
40
Shader::Builder ()
41
41
.FromFragmentShader (" assets/shaders/text2D.frag.spv" )
42
42
.WithTexture (" texture" , 0 , 16 )
43
- .WithDefaultTexture (defaultFont. GetTexture () )
43
+ .WithDefaultTexture (&defaultTexture )
44
44
.Build ());
45
45
46
46
textureId = INTERN_STR (" texture" );
@@ -61,7 +61,7 @@ void TextRenderer::Initialise(const char* defaultTextPath, const String& globalD
61
61
62
62
void TextRenderer::Free ()
63
63
{
64
- defaultFont .Free ();
64
+ defaultTexture .Free ();
65
65
defaultMaterial.Free ();
66
66
for (auto it = perFrameVertexBuffers.CreateIterator (); it; ++it) it->Free ();
67
67
indexBuffer.Free ();
@@ -74,9 +74,9 @@ void TextRenderer::DrawFont(const char* text,
74
74
const IColour& colour,
75
75
Vulkan::Font* font)
76
76
{
77
- auto targetFont = font == nullptr ? &defaultFont : font ;
77
+ if ( font == nullptr ) return ;
78
78
79
- auto texIndex = defaultMaterial.SetTexture (textureId, targetFont ->GetTexture ());
79
+ auto texIndex = defaultMaterial.SetTexture (textureId, font ->GetTexture ());
80
80
81
81
if (texIndex >= characters.Count ()) characters.Append (MHArray<QuadData>(OFFSET_PER_FONT));
82
82
@@ -85,14 +85,14 @@ void TextRenderer::DrawFont(const char* text,
85
85
size_t textSize = strlen (text);
86
86
float textScale = 64 .f ;
87
87
88
- float totalWidth = (GetTotalTextWidth (text, textSize, targetFont ->GetGlyphs ()));
88
+ float totalWidth = (GetTotalTextWidth (text, textSize, font ->GetGlyphs ()));
89
89
90
90
float x = 0 - (totalWidth / 2 .f );
91
91
float y = 0 ;
92
92
93
93
for (size_t i = 0 ; i < textSize; i++)
94
94
{
95
- auto glyph = targetFont ->GetGlyph (text[i]);
95
+ auto glyph = font ->GetGlyph (text[i]);
96
96
97
97
float height = glyph.height ;
98
98
0 commit comments