Browse Source

Tidied up RendererMixin.

Filename wasn't matching class name so renamed file and tidied some
stuff up.
Steven Kirk 10 years ago
parent
commit
b4e23af46e

+ 1 - 1
src/Perspex.SceneGraph/Perspex.SceneGraph.csproj

@@ -118,7 +118,7 @@
     <Compile Include="Rect.cs" />
     <Compile Include="Rendering\IRenderRoot.cs" />
     <Compile Include="Rendering\IRenderQueueManager.cs" />
-    <Compile Include="Rendering\RendererBase.cs" />
+    <Compile Include="Rendering\RendererMixin.cs" />
     <Compile Include="Rendering\RenderQueueManager.cs" />
     <Compile Include="Size.cs" />
     <Compile Include="Thickness.cs" />

+ 22 - 22
src/Perspex.SceneGraph/Rendering/RendererBase.cs → src/Perspex.SceneGraph/Rendering/RendererMixin.cs

@@ -5,14 +5,13 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Diagnostics.CodeAnalysis;
-using System.Linq;
 using Perspex.Media;
 using Perspex.Platform;
 
 namespace Perspex.Rendering
 {
     /// <summary>
-    /// Base class for standard renderers.
+    /// Extension methods for rendering.
     /// </summary>
     /// <remarks>
     /// This class provides implements the platform-independent parts of <see cref="IRenderTarget"/>.
@@ -21,11 +20,20 @@ namespace Perspex.Rendering
     [SuppressMessage("ReSharper", "ForCanBeConvertedToForeach")]
     public static class RendererMixin
     {
-        static int s_frameNum;
-        static int s_fps;
-        static int s_currentFrames;
-        static TimeSpan s_lastMeasure;
-        static readonly Stopwatch s_stopwatch = Stopwatch.StartNew();
+        private static int s_frameNum;
+        private static int s_fps;
+        private static int s_currentFrames;
+        private static TimeSpan s_lastMeasure;
+        private static readonly Stopwatch s_stopwatch = Stopwatch.StartNew();
+        private static readonly Stack<List<IVisual>> s_listPool = new Stack<List<IVisual>>();
+        private static readonly ZIndexComparer s_visualComparer = new ZIndexComparer();
+
+        /// <summary>
+        /// Gets or sets a value which determines whether an FPS counted will be drawn on each
+        /// rendered frame.
+        /// </summary>
+        public static bool DrawFpsCounter { get; set; }
+
         /// <summary>
         /// Renders the specified visual.
         /// </summary>
@@ -62,13 +70,10 @@ namespace Perspex.Rendering
             }
         }
 
-        public static bool DrawFpsCounter { get; set; }
-
         /// <summary>
         /// Renders the specified visual.
         /// </summary>
         /// <param name="visual">The visual to render.</param>
-        /// 
         /// <param name="context">The drawing context.</param>
         public static void Render(this DrawingContext context, IVisual visual)
         {
@@ -103,29 +108,24 @@ namespace Perspex.Rendering
             }
         }
 
-        static readonly Stack<List<IVisual>> ListPool = new Stack<List<IVisual>>();
-        static readonly ZIndexComparer VisualComparer = new ZIndexComparer();
-        class ZIndexComparer : IComparer<IVisual>
-        {
-            public int Compare(IVisual x, IVisual y) => x.ZIndex.CompareTo(y.ZIndex);
-        }
-
         static void ReturnListToPool(List<IVisual> lst)
         {
             lst.Clear();
-            ListPool.Push(lst);
+            s_listPool.Push(lst);
         }
 
         static List<IVisual> GetSortedVisualList(IReadOnlyList<IVisual> source)
         {
-            var lst = ListPool.Count == 0 ? new List<IVisual>() : ListPool.Pop();
+            var lst = s_listPool.Count == 0 ? new List<IVisual>() : s_listPool.Pop();
             for (var c = 0; c < source.Count; c++)
                 lst.Add(source[c]);
-            lst.Sort(VisualComparer);
+            lst.Sort(s_visualComparer);
             return lst;
         }
 
-
-
+        class ZIndexComparer : IComparer<IVisual>
+        {
+            public int Compare(IVisual x, IVisual y) => x.ZIndex.CompareTo(y.ZIndex);
+        }
     }
 }