OSDN Git Service

Detect if we have VBO support.
authorLatif Khalifa <latifer@streamgrid.net>
Sun, 10 Jul 2011 13:19:42 +0000 (13:19 +0000)
committerLatif Khalifa <latifer@streamgrid.net>
Sun, 10 Jul 2011 13:19:42 +0000 (13:19 +0000)
git-svn-id: https://radegast.googlecode.com/svn/trunk@966 f7a694da-4d33-11de-9ad6-1127a62b9fcd

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

index 16cd1cc..4083714 100644 (file)
@@ -169,6 +169,7 @@ namespace Radegast.Rendering
 \r
         void frmPrimWorkshop_Disposed(object sender, EventArgs e)\r
         {\r
+            RenderingEnabled = false;\r
             Application.Idle -= new EventHandler(Application_Idle);\r
 \r
             PendingTextures.Close();\r
@@ -180,8 +181,8 @@ namespace Radegast.Rendering
             Client.Network.SimChanged -= new EventHandler<SimChangedEventArgs>(Network_SimChanged);\r
             Client.Self.TeleportProgress -= new EventHandler<TeleportEventArgs>(Self_TeleportProgress);\r
             Client.Terrain.LandPatchReceived -= new EventHandler<LandPatchReceivedEventArgs>(Terrain_LandPatchReceived);\r
-            Instance.Netcom.ClientDisconnected -= new EventHandler<DisconnectedEventArgs>(Netcom_ClientDisconnected);\r
             //Client.Avatars.AvatarAnimation -= new EventHandler<AvatarAnimationEventArgs>(AvatarAnimationChanged);\r
+            Client.Avatars.AvatarAppearance -= new EventHandler<AvatarAppearanceEventArgs>(Avatars_AvatarAppearance);\r
 \r
             if (instance.Netcom != null)\r
             {\r
@@ -484,7 +485,10 @@ namespace Radegast.Rendering
 \r
                 GL.Enable(EnableCap.Blend);\r
                 GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);\r
-                hasMipmap = GL.GetString(StringName.Extensions).Contains("GL_SGIS_generate_mipmap");\r
+                string glExtensions = GL.GetString(StringName.Extensions);\r
+                hasMipmap = glExtensions.Contains("GL_SGIS_generate_mipmap");\r
+                useVBO = glExtensions.Contains("ARB_vertex_buffer_object");\r
+\r
                 // Double check if we have mipmap ability\r
                 if (hasMipmap)\r
                 {\r
index e1d300c..3142a26 100644 (file)
@@ -34,7 +34,7 @@ namespace Radegast.Rendering
                 Vertex[] vArray = face.Vertices.ToArray();\r
                 GL.GenBuffers(1, out VertexVBO);\r
                 GL.BindBuffer(BufferTarget.ArrayBuffer, VertexVBO);\r
-                GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(vArray.Length * VertexSize), vArray, BufferUsageHint.StreamDraw);\r
+                GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(vArray.Length * VertexSize), vArray, BufferUsageHint.StaticDraw);\r
             }\r
 \r
             if (IndexVBO == -1)\r
@@ -42,7 +42,7 @@ namespace Radegast.Rendering
                 ushort[] iArray = face.Indices.ToArray();\r
                 GL.GenBuffers(1, out IndexVBO);\r
                 GL.BindBuffer(BufferTarget.ElementArrayBuffer, IndexVBO);\r
-                GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(iArray.Length * sizeof(ushort)), iArray, BufferUsageHint.StreamDraw);\r
+                GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(iArray.Length * sizeof(ushort)), iArray, BufferUsageHint.StaticDraw);\r
             }\r
         }\r
     }\r