Fixed extension retrieval for OpenGL ES 3+.
diff --git a/README.md b/README.md
index 957265e..c7904c1 100644
--- a/README.md
+++ b/README.md
@@ -99,6 +99,8 @@
- Bugfix: The particles example was not linked against the threading library
- Bugfix: The cursor was not positioned over newly created full screen windows
- Bugfix: The queried cursor position was not always up-to-date
+ - Bugfix: `glfwExtensionSupported` always failed for OpenGL ES 3.0 and later if
+ the library was compiled for OpenGL ES
- [Cocoa] Added `_GLFW_USE_RETINA` to control whether windows will use the full
resolution on Retina displays
- [Cocoa] Made content view subclass of `NSOpenGLView`
diff --git a/src/context.c b/src/context.c
index 8f01846..99d7489 100644
--- a/src/context.c
+++ b/src/context.c
@@ -588,7 +588,6 @@
GLFWAPI int glfwExtensionSupported(const char* extension)
{
- const GLubyte* extensions;
_GLFWwindow* window;
_GLFW_REQUIRE_INIT_OR_RETURN(GL_FALSE);
@@ -606,23 +605,8 @@
return GL_FALSE;
}
- if (window->context.major < 3)
- {
- // Check if extension is in the old style OpenGL extensions string
-
- extensions = glGetString(GL_EXTENSIONS);
- if (!extensions)
- {
- _glfwInputError(GLFW_PLATFORM_ERROR,
- "Failed to retrieve extension string");
- return GL_FALSE;
- }
-
- if (_glfwStringInExtensionString(extension, extensions))
- return GL_TRUE;
- }
#if defined(_GLFW_USE_OPENGL)
- else
+ if (window->context.major >= 3)
{
int i;
GLint count;
@@ -645,7 +629,22 @@
return GL_TRUE;
}
}
+ else
#endif // _GLFW_USE_OPENGL
+ {
+ // Check if extension is in the old style OpenGL extensions string
+
+ const GLubyte* extensions = glGetString(GL_EXTENSIONS);
+ if (!extensions)
+ {
+ _glfwInputError(GLFW_PLATFORM_ERROR,
+ "Failed to retrieve extension string");
+ return GL_FALSE;
+ }
+
+ if (_glfwStringInExtensionString(extension, extensions))
+ return GL_TRUE;
+ }
// Check if extension is in the platform-specific string
return _glfwPlatformExtensionSupported(extension);