private void DrawGameObjects(IGameObject rootGameObject)
        {
            foreach (IComponent component in rootGameObject.GetComponents())
            {
                ISpriteRenderer sr = component as ISpriteRenderer;
                if (sr != null)
                {
                    RenderSpriteHandler?.Invoke(sr);
                }

                ITextRenderer tr = component as ITextRenderer;
                if (tr != null)
                {
                    RenderTextHandler?.Invoke(tr.Font, tr.Text, tr.Transform.Position + tr.Offset, tr.Color, 0.5f, tr.Transform.Rotation, tr.Size, 0.5f);
                }

                ILineRenderer lr = component as ILineRenderer;
                if (lr != null)
                {
                    RenderLineHandler?.Invoke(lr.Start, lr.End, lr.Color, lr.Size);
                }
            }
        }
 void IRenderManagerInternal.RenderText(Font font, string text, Vector2 position, Color color, float alignmentOffset, float rotation, float scale, float layer)
 {
     RenderTextHandler?.Invoke(font, text, position, color, alignmentOffset, rotation, scale, layer);
 }