Reimplemented Renderer2D

- Renderer2D now static
- Renderer now calls Init and Deinit of Renderer2D
- Renderer2D  now calls Init and Deinit of FontRenderer
- Fixed Deinit order of Layers and renderer (e.g. Layers now deinit first)
- Sandbox2D now uses SandboxApp (only loads different layer)
This commit is contained in:
Simon Lübeß
2021-09-29 23:27:41 +02:00
parent 9a9d75afbc
commit 4dc6c916ae
14 changed files with 568 additions and 360 deletions
+5 -7
View File
@@ -107,20 +107,21 @@ namespace GlitchyEngine.Renderer.Text
public this(GraphicsContext context, String fontPath, uint32 fontSize, bool hasColor = true, char32 firstChar = '\0', uint32 charCount = 128, int32 faceIndex = 0)
{
// Make sure the fontrenderer is initialized (Font only cares about freetype)
FontRenderer.Init();
_context = context..AddRef();
// Set default sampler
Sampler = null;
FontRenderer.InitLibrary();
_glyphs.Add('\0', new GlyphDescriptor(){Font = this});
_fontSize = fontSize;
_faceIndex = faceIndex;
_hasColor = hasColor;
var res = FreeType.New_Face(FontRenderer.Library, fontPath, faceIndex, &_face);
var res = FreeType.New_Face(FontRenderer.s_Library, fontPath, faceIndex, &_face);
Log.EngineLogger.Assert(res.Success, scope $"New_Face failed({(int)res}): {res}");
res = FreeType.Set_Pixel_Sizes(_face, 0, _fontSize);
@@ -408,11 +409,8 @@ namespace GlitchyEngine.Renderer.Text
desc.TranslationX = translationX;
desc.TranslationY = translationY;
//desc.AdjustToBaseLine = (float)(- height + _range + (_face.glyph.metrics.height / 64 - _face.glyph.metrics.horiBearingY / 64) * _geometryScaler);
//(float)(- height + translationY * _geometryScaler + (_face.glyph.metrics.height / 64 - _face.glyph.metrics.horiBearingY / 64) * _geometryScaler);
desc.AdjustToBaseLine = (float)(-height + translationY * _geometryScaler);
desc.AdjustToBaseLine = (float)(-translationY * _geometryScaler);
//desc.AdjustToPen = (float)(- _range + (_face.glyph.metrics.horiBearingX / 64) * _geometryScaler);
desc.AdjustToPen = (float)(-translationX);
return true;