Skip to content
This repository has been archived by the owner on Sep 18, 2022. It is now read-only.

Commit

Permalink
Fixed GameObject rotation origin and added UIWidget renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
craftersmine committed Mar 18, 2019
1 parent 48c9956 commit cf9aa45
Showing 1 changed file with 31 additions and 2 deletions.
33 changes: 31 additions & 2 deletions craftersmine.EtherEngine.Core/GameRendererHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ internal static void OnRender(object sender, RenderEventArgs e)
Debugging.DrawCalls = 0;
if (SceneManager.CurrentScene != null)
{
#region GameObjects Renderer
for (int obj = 0; obj < SceneManager.CurrentScene.GameObjects.Count; obj++)
{
if (SceneManager.CurrentScene.GameObjects[obj].Visible)
Expand All @@ -30,7 +31,7 @@ internal static void OnRender(object sender, RenderEventArgs e)
SceneManager.CurrentScene.GameObjects[obj].Transform.RendererY < SceneManager.CurrentScene.SceneCamera.FrameHeight)
{
SceneManager.CurrentScene.GameObjects[obj].IsVisibleByCamera = true;
e.GLGDIInstance.Rotate(SceneManager.CurrentScene.GameObjects[obj].Transform.RotationAngle, SceneManager.CurrentScene.GameObjects[obj].Transform.Width / 2, SceneManager.CurrentScene.GameObjects[obj].Transform.Height / 2);
e.GLGDIInstance.Rotate(SceneManager.CurrentScene.GameObjects[obj].Transform.RotationAngle, SceneManager.CurrentScene.GameObjects[obj].Transform.RotationOriginX, SceneManager.CurrentScene.GameObjects[obj].Transform.RotationOriginY);
SceneManager.CurrentScene.GameObjects[obj].OnRender(e.GLGDIInstance);
Debugging.DrawCalls++;
}
Expand All @@ -39,6 +40,33 @@ internal static void OnRender(object sender, RenderEventArgs e)
}
}
}
#endregion

#region UI Widgets Renderer
for (int widget = 0; widget < SceneManager.CurrentScene.UIWidgets.Count; widget++)
{
if (SceneManager.CurrentScene.UIWidgets[widget].Visible)
{
if (SceneManager.CurrentScene.UIWidgets[widget].Texture != null || SceneManager.CurrentScene.UIWidgets[widget].Animation != null)
{
if (SceneManager.CurrentScene.UIWidgets[widget].Transform.RendererX + SceneManager.CurrentScene.UIWidgets[widget].Width > 0 &&
SceneManager.CurrentScene.UIWidgets[widget].Transform.RendererX < SceneManager.CurrentScene.SceneCamera.FrameWidth &&
SceneManager.CurrentScene.UIWidgets[widget].Transform.RendererY + SceneManager.CurrentScene.UIWidgets[widget].Height > 0 &&
SceneManager.CurrentScene.UIWidgets[widget].Transform.RendererY < SceneManager.CurrentScene.SceneCamera.FrameHeight)
{
SceneManager.CurrentScene.UIWidgets[widget].IsVisibleByCamera = true;
e.GLGDIInstance.Rotate(SceneManager.CurrentScene.UIWidgets[widget].Transform.RotationAngle, SceneManager.CurrentScene.UIWidgets[widget].Transform.RotationOriginX, SceneManager.CurrentScene.UIWidgets[widget].Transform.RotationOriginY);
SceneManager.CurrentScene.UIWidgets[widget].OnRender(e.GLGDIInstance);
Debugging.DrawCalls++;
}
else
SceneManager.CurrentScene.UIWidgets[widget].IsVisibleByCamera = false;
}
}
}
#endregion

#region Debug Bounds Renderer
if (Debugging.DrawBounds)
{
for (int i = 0; i < SceneManager.CurrentScene.GameObjects.Count; i++)
Expand All @@ -57,9 +85,10 @@ internal static void OnRender(object sender, RenderEventArgs e)
}
}
}
#endregion
}
if (Debugging.ShowDrawCallsPerFrameInTitle)
Game.GameWnd.Title = Game.DefaultWindowTitle + " | " + Debugging.DrawCalls + " DrawCalls/s";
Game.GameWnd.Title = Game.DefaultWindowTitle + " | ~" + Debugging.DrawCalls + " DrawCalls/s";
}
}
}

0 comments on commit cf9aa45

Please sign in to comment.