OSDN Git Service

Moved occlusion culling setting to RenderSettings
authorLatif Khalifa <latifer@streamgrid.net>
Sun, 31 Jul 2011 21:34:38 +0000 (21:34 +0000)
committerLatif Khalifa <latifer@streamgrid.net>
Sun, 31 Jul 2011 21:34:38 +0000 (21:34 +0000)
git-svn-id: https://radegast.googlecode.com/svn/trunk@1047 f7a694da-4d33-11de-9ad6-1127a62b9fcd

Radegast/GUI/Rendering/RenderSettings.cs
Radegast/GUI/Rendering/Rendering.cs
Radegast/GUI/Rendering/RenderingHelpers.cs

index 899dbe3..e2fc01a 100644 (file)
@@ -47,5 +47,7 @@ namespace Radegast.Rendering
         public static bool AllowQuickAndDirtyMeshing = true;
         public static int MeshesPerFrame = 2;
         public static int TexturesToDownloadPerFrame = 2;
+        /// <summary>Should we try to optimize by not drawing objects occluded behind other objects</summary>
+        public static bool OcclusionCullingEnabled = true;
     }
 }
index 9984d1a..ef9b280 100644 (file)
@@ -113,11 +113,6 @@ namespace Radegast.Rendering
         public bool RenderAvatarSkeleton = false;\r
 \r
         /// <summary>\r
-        /// Should we try to optimize by not drawing objects occluded behind other objects\r
-        /// </summary>\r
-        public bool OcclusionCullingEnabled = true;\r
-\r
-        /// <summary>\r
         /// Cache images after jpeg2000 decode. Uses a lot of disk space and can cause disk trashing\r
         /// </summary>\r
         public bool CacheDecodedTextures = false;\r
@@ -2386,7 +2381,7 @@ namespace Radegast.Rendering
         {\r
             SortedObjects = new List<SceneObject>();\r
             VisibleAvatars = new List<RenderAvatar>();\r
-            if (OcclusionCullingEnabled)\r
+            if (RenderSettings.OcclusionCullingEnabled)\r
             {\r
                 OccludedObjects = new List<SceneObject>();\r
             }\r
@@ -2429,7 +2424,7 @@ namespace Radegast.Rendering
                     if (LODFactor(obj.DistanceSquared, obj.BasePrim.Scale, obj.BoundingVolume.R) < minLODFactor) continue;\r
 \r
                     obj.Attached = false;\r
-                    if (OcclusionCullingEnabled && obj.Occluded())\r
+                    if (obj.Occluded())\r
                     {\r
                         OccludedObjects.Add(obj);\r
                     }\r
@@ -2493,7 +2488,7 @@ namespace Radegast.Rendering
                         obj.AttachedStateKnown = true;\r
                     }\r
 \r
-                    if (OcclusionCullingEnabled && obj.Occluded())\r
+                    if (obj.Occluded())\r
                     {\r
                         OccludedObjects.Add(obj);\r
                     }\r
@@ -2533,7 +2528,7 @@ namespace Radegast.Rendering
 \r
         private void RenderOccludedObjects()\r
         {\r
-            if (!OcclusionCullingEnabled) return;\r
+            if (!RenderSettings.OcclusionCullingEnabled) return;\r
 \r
             GL.EnableClientState(ArrayCap.VertexArray);\r
             GL.ColorMask(false, false, false, false);\r
@@ -3444,7 +3439,7 @@ namespace Radegast.Rendering
         private void cbMisc_CheckedChanged(object sender, EventArgs e)\r
         {\r
             miscEnabled = cbMisc.Checked;\r
-            OcclusionCullingEnabled = miscEnabled;\r
+            RenderSettings.OcclusionCullingEnabled = miscEnabled;\r
         }\r
     }\r
 }\r
index c235950..1699955 100644 (file)
@@ -396,6 +396,8 @@ namespace Radegast.Rendering
 \r
         public void StartQuery(RenderPass pass)\r
         {\r
+            if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
             if (pass == RenderPass.Simple)\r
             {\r
                 StartSimpleQuery();\r
@@ -408,6 +410,8 @@ namespace Radegast.Rendering
 \r
         public void EndQuery(RenderPass pass)\r
         {\r
+            if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
             if (pass == RenderPass.Simple)\r
             {\r
                 EndSimpleQuery();\r
@@ -420,6 +424,8 @@ namespace Radegast.Rendering
 \r
         public void StartAlphaQuery()\r
         {\r
+            if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
             if (AlphaQueryID == -1)\r
             {\r
                 GL.GenQueries(1, out AlphaQueryID);\r
@@ -432,6 +438,8 @@ namespace Radegast.Rendering
 \r
         public void EndAlphaQuery()\r
         {\r
+            if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
             if (AlphaQueryID > 0)\r
             {\r
                 GL.EndQuery(QueryTarget.SamplesPassed);\r
@@ -440,6 +448,8 @@ namespace Radegast.Rendering
 \r
         public void StartSimpleQuery()\r
         {\r
+            if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
             if (SimpleQueryID == -1)\r
             {\r
                 GL.GenQueries(1, out SimpleQueryID);\r
@@ -452,6 +462,8 @@ namespace Radegast.Rendering
 \r
         public void EndSimpleQuery()\r
         {\r
+            if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
             if (SimpleQueryID > 0)\r
             {\r
                 GL.EndQuery(QueryTarget.SamplesPassed);\r
@@ -460,6 +472,8 @@ namespace Radegast.Rendering
 \r
         public bool Occluded()\r
         {\r
+            if (!RenderSettings.OcclusionCullingEnabled) return false;\r
+\r
             if ((SimpleQueryID == -1 && AlphaQueryID == -1))\r
             {\r
                 return false;\r