GetStaticAddess checks for RenderableFlags.ES3
authorJonas Boesch <jonas.boesch@phonak.com>
Wed, 4 Mar 2015 10:50:12 +0000 (11:50 +0100)
committerFraser Waters <fraser.waters@arm.com>
Tue, 21 Apr 2015 13:36:09 +0000 (14:36 +0100)
Source/OpenTK/Platform/Egl/EglUnixContext.cs
Source/OpenTK/Platform/Egl/EglWinContext.cs

index 94eb2e4..d2f8200 100644 (file)
@@ -53,13 +53,13 @@ namespace OpenTK.Platform.Egl
 
         protected override IntPtr GetStaticAddress(IntPtr function, RenderableFlags renderable)
         {
-            if ((renderable & RenderableFlags.ES) != 0 && ES1 != IntPtr.Zero)
+            if ((renderable & (RenderableFlags.ES2 | RenderableFlags.ES3)) != 0 && ES2 != IntPtr.Zero)
             {
-                return X11.DL.Symbol(ES1, function);
+                return X11.DL.Symbol(ES2, function);
             }
-            else if ((renderable & RenderableFlags.ES2) != 0 && ES2 != IntPtr.Zero)
+            else if ((renderable & RenderableFlags.ES) != 0 && ES1 != IntPtr.Zero)
             {
-                return X11.DL.Symbol(ES2, function);
+                return X11.DL.Symbol(ES1, function);
             }
             else if ((renderable & RenderableFlags.GL) != 0 && GL != IntPtr.Zero)
             {
index 9c6ee61..86d736c 100644 (file)
@@ -34,8 +34,8 @@ namespace OpenTK.Platform.Egl
 {
     class EglWinContext : EglContext
     {
-        readonly IntPtr ES1 = OpenTK.Platform.Windows.Functions.LoadLibrary("libGLESv1_CM");
-        readonly IntPtr ES2 = OpenTK.Platform.Windows.Functions.LoadLibrary("libGLESv2");
+        IntPtr ES1 = OpenTK.Platform.Windows.Functions.LoadLibrary("libGLESv1_CM");
+        IntPtr ES2 = OpenTK.Platform.Windows.Functions.LoadLibrary("libGLESv2");
 
         public EglWinContext(GraphicsMode mode, EglWindowInfo window, IGraphicsContext sharedContext,
             int major, int minor, GraphicsContextFlags flags)
@@ -53,13 +53,13 @@ namespace OpenTK.Platform.Egl
 
         protected override IntPtr GetStaticAddress(IntPtr function, RenderableFlags renderable)
         {
-            if ((renderable & RenderableFlags.ES) != 0 && ES1 != IntPtr.Zero)
+            if ((renderable & (RenderableFlags.ES2 | RenderableFlags.ES3)) != 0 && ES2 != IntPtr.Zero)
             {
-                return Windows.Functions.GetProcAddress(ES1, function);
+                return Windows.Functions.GetProcAddress(ES2, function);
             }
-            else if ((renderable & RenderableFlags.ES2) != 0 && ES2 != IntPtr.Zero)
+            else if ((renderable & RenderableFlags.ES) != 0 && ES1 != IntPtr.Zero)
             {
-                return Windows.Functions.GetProcAddress(ES2, function);
+                return Windows.Functions.GetProcAddress(ES1, function);
             }
             return IntPtr.Zero;
         }
@@ -75,6 +75,8 @@ namespace OpenTK.Platform.Egl
                 Windows.Functions.FreeLibrary(ES2);
             }
 
+            ES1 = ES2 = IntPtr.Zero;
+
             base.Dispose(manual);
         }