mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-06 05:01:53 +00:00
Font renderer improvements + component for scripting
This commit is contained in:
@@ -799,10 +799,18 @@ namespace GlitchyEngine.World
|
||||
{
|
||||
if (textRenderer.NeedsRebuild || textRenderer.PreparedText == null)
|
||||
{
|
||||
using (PreparedText preparedText = FontRenderer.PrepareText(_font, textRenderer.Text, 24, .Black))
|
||||
if (textRenderer.PreparedText == null)
|
||||
{
|
||||
textRenderer.PreparedText = preparedText;
|
||||
textRenderer.PreparedText = new FontRenderer.PreparedText(_font);
|
||||
}
|
||||
else
|
||||
{
|
||||
textRenderer.PreparedText.AddRef();
|
||||
}
|
||||
|
||||
FontRenderer.PrepareText(textRenderer.PreparedText, _font, textRenderer.Text, 24, .Black);
|
||||
|
||||
textRenderer.PreparedText.ReleaseRef();
|
||||
|
||||
textRenderer.NeedsRebuild = false;
|
||||
}
|
||||
|
||||
@@ -118,15 +118,29 @@ class SceneRenderer
|
||||
// Sprite renderer
|
||||
Renderer2D.BeginScene(*primaryCamera, primaryCameraTransform, .BackToFront);
|
||||
|
||||
for (var (entity, transform, sprite) in Scene._ecsWorld.Enumerate<TransformComponent, SpriteRendererComponent>())
|
||||
for (var (entity, transform, sprite, editorFlags) in Scene._ecsWorld.Enumerate<TransformComponent, SpriteRendererComponent, EditorFlagsComponent>())
|
||||
{
|
||||
if (editorFlags.Flags.HasFlag(.HideInScene))
|
||||
continue;
|
||||
|
||||
Renderer2D.DrawSprite(transform.WorldTransform, sprite, entity.Index);
|
||||
}
|
||||
|
||||
for (var (entity, transform, circle) in Scene._ecsWorld.Enumerate<TransformComponent, CircleRendererComponent>())
|
||||
for (var (entity, transform, circle, editorFlags) in Scene._ecsWorld.Enumerate<TransformComponent, CircleRendererComponent, EditorFlagsComponent>())
|
||||
{
|
||||
if (editorFlags.Flags.HasFlag(.HideInScene))
|
||||
continue;
|
||||
|
||||
Renderer2D.DrawCircle(transform.WorldTransform, circle, entity.Index);
|
||||
}
|
||||
|
||||
for (var (entity, transform, text, editorFlags) in Scene._ecsWorld.Enumerate<TransformComponent, TextRendererComponent, EditorFlagsComponent>())
|
||||
{
|
||||
if (editorFlags.Flags.HasFlag(.HideInScene) || text.PreparedText == null)
|
||||
continue;
|
||||
|
||||
FontRenderer.DrawText(text.PreparedText, transform.WorldTransform * Matrix.Scaling(1.0f / 24.0f));
|
||||
}
|
||||
|
||||
Renderer2D.EndScene();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user