diff --git a/Shared/Debug.cs b/Shared/Debug.cs index 372c244..adb2647 100644 --- a/Shared/Debug.cs +++ b/Shared/Debug.cs @@ -32,23 +32,30 @@ namespace SemiColinGames { // Lines in excess of MAX_LINES get dropped on the floor. const int MAX_LINES = 2000; const int MAX_LINE_VERTICES = MAX_LINES * 2; + static int lineIdx = 0; - static readonly VertexPositionColor[] lineVertices = new VertexPositionColor[MAX_LINE_VERTICES]; + static VertexPositionColor[] lineVertices; static VertexBuffer vertexBuffer; + [System.Diagnostics.Conditional("DEBUG")] public static void Initialize(GraphicsDevice graphics) { + lineVertices = new VertexPositionColor[MAX_LINE_VERTICES]; + vertexBuffer?.Dispose(); vertexBuffer = new VertexBuffer( graphics, typeof(VertexPositionColor), MAX_LINE_VERTICES, BufferUsage.WriteOnly); } + [System.Diagnostics.Conditional("DEBUG")] public static void WriteLine(string s) { System.Diagnostics.Debug.WriteLine(s); } + [System.Diagnostics.Conditional("DEBUG")] public static void WriteLine(string s, params object[] args) { System.Diagnostics.Debug.WriteLine(s, args); } + [System.Diagnostics.Conditional("DEBUG")] public static void Clear(bool paused) { toasts.Clear(); if (!paused) { @@ -56,15 +63,18 @@ namespace SemiColinGames { } } + [System.Diagnostics.Conditional("DEBUG")] public static void AddToast(string s) { toasts.AddLast(s); } // FPS text is always displayed as the first toast (if set). + [System.Diagnostics.Conditional("DEBUG")] public static void SetFpsText(string s) { toasts.AddFirst(s); } + [System.Diagnostics.Conditional("DEBUG")] public static void AddRect(Rectangle rect, Color color) { AddLine(rect.Left, rect.Top + 1, rect.Right, rect.Top + 1, color); AddLine(rect.Left + 1, rect.Top + 1, rect.Left + 1, rect.Bottom, color); @@ -72,6 +82,7 @@ namespace SemiColinGames { AddLine(rect.Left + 1, rect.Bottom, rect.Right, rect.Bottom, color); } + [System.Diagnostics.Conditional("DEBUG")] public static void AddRect(AABB box, Color color) { Rectangle rect = new Rectangle( (int) (box.Position.X - box.HalfSize.X), (int) (box.Position.Y - box.HalfSize.Y), @@ -79,6 +90,7 @@ namespace SemiColinGames { AddRect(rect, color); } + [System.Diagnostics.Conditional("DEBUG")] public static void AddLine(Point start, Point end, Color color) { if (lineIdx >= MAX_LINE_VERTICES) { return; @@ -88,14 +100,17 @@ namespace SemiColinGames { lineIdx += 2; } + [System.Diagnostics.Conditional("DEBUG")] public static void AddLine(int p1x, int p1y, int p2x, int p2y, Color color) { AddLine(new Point(p1x, p1y), new Point(p2x, p2y), color); } + [System.Diagnostics.Conditional("DEBUG")] public static void AddLine(Vector2 start, Vector2 end, Color color) { AddLine(start.ToPoint(), end.ToPoint(), color); } + [System.Diagnostics.Conditional("DEBUG")] public static void DrawToasts(SpriteBatch spriteBatch) { if (!Enabled) { return; @@ -111,6 +126,7 @@ namespace SemiColinGames { } } + [System.Diagnostics.Conditional("DEBUG")] public static void Draw(GraphicsDevice graphics, BasicEffect lightingEffect) { if (!Enabled) { return;