Made FontRenderer static, added scale and linegap to DrawText

it seems I forgot to push the freetype-submodule
This commit is contained in:
Simon Lübeß
2021-07-19 20:19:57 +02:00
parent 9b418521af
commit dbdb8a0d32
6 changed files with 73 additions and 51 deletions
+13 -5
View File
@@ -9,6 +9,7 @@ using GlitchyEngine.Renderer;
using GlitchyEngine.Math;
using GlitchyEngine.World;
using GlitchyEngine.Renderer.Text;
using System.IO;
namespace Sandbox
{
@@ -60,6 +61,8 @@ namespace Sandbox
Texture2D _testTexture ~ _?.ReleaseRef();
String testText ~ delete _;
[AllowAppend]
public this() : base("Example")
{
@@ -119,16 +122,20 @@ namespace Sandbox
_testTexture.SetData<Color>(&colors, 0, 1, 1, 1);
fonty = new Font(_context, "C:\\Windows\\Fonts\\arial.ttf", 64, true, 'A', 16);
var japanese = new Font(_context, "C:\\Windows\\Fonts\\YuGothM.ttc", 64, true, '\0', 1);
var emojis = new Font(_context, "C:\\Windows\\Fonts\\seguiemj.ttf", 64, true, '😂' - 10, 1);
fonty.Fallback = emojis..ReleaseRefNoDelete();
var mathstuff = new Font(_context, "C:\\Windows\\Fonts\\cambria.ttc", 64, true, 'α', 1);
fonty.Fallback = japanese..ReleaseRefNoDelete();
japanese.Fallback = emojis..ReleaseRefNoDelete();
emojis.Fallback = mathstuff..ReleaseRefNoDelete();
fontRenderer = new FontRenderer(_context);
// Load test text
var result = File.ReadAllText("test.txt", testText = new String(), true);
//Log.EngineLogger.Assert(result)
}
Font fonty ~ _.ReleaseRef();
FontRenderer fontRenderer ~ delete _;
VertexLayout layout ~ delete _;
GeometryBinding quadBinding ~ _?.ReleaseRef();
@@ -304,7 +311,8 @@ namespace Sandbox
_alphaBlendState.Bind();
Renderer2D.Begin(.FrontToBack, .(_context.SwapChain.Width, _context.SwapChain.Height));
fontRenderer.DrawText(Renderer2D, fonty, "Hallo Welt, wie geht es dir? 😂😂😂\nMir geht es gut, danke der Nachfrage, wie geht es dir?\nMir geht es hervorragend: Meine Engine kann endlich Text rendern\n und es scheint ganz in ordnung zu sein.", 0, 0);
// Hallo Welt, wie geht es dir? 😂😂😂\nMir geht es gut, danke der Nachfrage. Wie geht es dir?\nMir geht es hervorragend und besser noch: meine Engine kann endlich Text rendern!💕❤\n und es scheint ganz in ordnung zu sein.
FontRenderer.DrawText(Renderer2D, fonty, testText, 0, 0, .White, .White, 32);
Renderer2D.End();
}