diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1e224e9..e41f325 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -117,7 +117,7 @@ else()
endif()
# OS Specific dependencies
-if(APPLE)
+if(APPLE AND CMAKE_SYSTEM_VERSION VERSION_LESS "25.0.0")
find_library(AGL_LIBRARY AGL REQUIRED)
list(APPEND LIBRARIES ${AGL_LIBRARY})
elseif(NOT WIN32)
diff --git a/build/glew.rc b/build/glew.rc
index 9761bf3..7d17af0 100644
--- a/build/glew.rc
+++ b/build/glew.rc
@@ -20,8 +20,8 @@
// Version
//
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 2, 3, 0, 0
-PRODUCTVERSION 2, 3, 0, 0
+FILEVERSION 2, 3, 1, 0
+PRODUCTVERSION 2, 3, 1, 0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
@@ -118,14 +118,14 @@ BEGIN
"MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "The OpenGL Extension Wrangler Library\0"
- VALUE "FileVersion", "2,3,0,0\0"
+ VALUE "FileVersion", "2,3,1,0\0"
VALUE "InternalName", "GLEW\0"
VALUE "LegalCopyright", "(C) 2002-2019 Nigel Stewart & Milan Ikits & Marcelo Magallon\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", FILENAME "\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "The OpenGL Extension Wrangler Library\0"
- VALUE "ProductVersion", "2,3,0,0\0"
+ VALUE "ProductVersion", "2,3,1,0\0"
VALUE "SpecialBuild", "\0"
END
END
diff --git a/build/glewinfo.rc b/build/glewinfo.rc
index c08c164..40fe923 100644
--- a/build/glewinfo.rc
+++ b/build/glewinfo.rc
@@ -12,8 +12,8 @@
// Version
//
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 2, 3, 0, 0
-PRODUCTVERSION 2, 3, 0, 0
+FILEVERSION 2, 3, 1, 0
+PRODUCTVERSION 2, 3, 1, 0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
@@ -106,14 +106,14 @@ BEGIN
"MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "Utility for verifying extension entry points\0"
- VALUE "FileVersion", "2,3,0,0\0"
+ VALUE "FileVersion", "2,3,1,0\0"
VALUE "InternalName", "glewinfo\0"
VALUE "LegalCopyright", "(C) 2002-2019 Nigel Stewart & Milan Ikits & Marcelo Magallon\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", FILENAME "\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "The OpenGL Extension Wrangler Library\0"
- VALUE "ProductVersion", "2,3,0,0\0"
+ VALUE "ProductVersion", "2,3,1,0\0"
VALUE "SpecialBuild", "\0"
END
END
diff --git a/build/visualinfo.rc b/build/visualinfo.rc
index 55c25f9..718afdd 100644
--- a/build/visualinfo.rc
+++ b/build/visualinfo.rc
@@ -12,8 +12,8 @@
// Version
//
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 2, 3, 0, 0
-PRODUCTVERSION 2, 3, 0, 0
+FILEVERSION 2, 3, 1, 0
+PRODUCTVERSION 2, 3, 1, 0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
@@ -106,14 +106,14 @@ BEGIN
"MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "Utility for listing pixelformat capabilities\0"
- VALUE "FileVersion", "2,3,0,0\0"
+ VALUE "FileVersion", "2,3,1,0\0"
VALUE "InternalName", "visualinfo\0"
VALUE "LegalCopyright", "(C) 2002-2019 Nigel Stewart & Milan Ikits & Marcelo Magallon\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", FILENAME "\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "The OpenGL Extension Wrangler Library\0"
- VALUE "ProductVersion", "2,3,0,0\0"
+ VALUE "ProductVersion", "2,3,1,0\0"
VALUE "SpecialBuild", "\0"
END
END
diff --git a/config/version b/config/version
index 98b5500..803b828 100644
--- a/config/version
+++ b/config/version
@@ -1,6 +1,6 @@
GLEW_MAJOR = 2
GLEW_MINOR = 3
-GLEW_MICRO = 0
+GLEW_MICRO = 1
GLEW_VERSION = $(GLEW_MAJOR).$(GLEW_MINOR).$(GLEW_MICRO)
GLEW_NAME = GLEW
SO_MAJOR = $(GLEW_MAJOR).$(GLEW_MINOR)
diff --git a/doc/advanced.html b/doc/advanced.html
index ae70299..a0117cc 100644
--- a/doc/advanced.html
+++ b/doc/advanced.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/basic.html b/doc/basic.html
index bb2149d..69796f4 100644
--- a/doc/basic.html
+++ b/doc/basic.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/build.html b/doc/build.html
index 6ea0e6a..c1631f7 100644
--- a/doc/build.html
+++ b/doc/build.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/credits.html b/doc/credits.html
index 2c9b052..8ae43f0 100644
--- a/doc/credits.html
+++ b/doc/credits.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/eglew.html b/doc/eglew.html
index 00e7a75..0e39dea 100644
--- a/doc/eglew.html
+++ b/doc/eglew.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/glew.html b/doc/glew.html
index d39b655..9c3804e 100644
--- a/doc/glew.html
+++ b/doc/glew.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/glxew.html b/doc/glxew.html
index f32d1bb..9cd0ab8 100644
--- a/doc/glxew.html
+++ b/doc/glxew.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/index.html b/doc/index.html
index c696a4b..511aaa0 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
@@ -108,7 +107,7 @@ Mac OS X, FreeBSD, Irix, and Solaris.
GLEW is distributed
as source and precompiled binaries.
The latest release is
-2.3.0[12-27-2025]:
+2.3.1[01-10-2026]:
@@ -122,8 +121,8 @@ The latest release is
| Source |
|
-ZIP |
-TGZ |
+ZIP |
+TGZ
|
@@ -131,7 +130,7 @@ The latest release is
| Binaries |
|
-Windows 32-bit and 64-bit
+Windows 32-bit and 64-bit
|
|
@@ -161,7 +160,8 @@ The latest release contains support for OpenGL 4.6, compatibility and forward-co
News
-- [06-27-2025] GLEW 2.3.0 new extensions and minor bug fixes
+- [01-03-2025] GLEW 2.3.1 minor bug fixe
+- [12-27-2025] GLEW 2.3.0 new extensions and minor bug fixes
- [03-15-2020] GLEW 2.2.0 new extensions and minor bug fixes
- [07-31-2017] GLEW 2.1.0 adds support for OpenGL 4.6, new extensions and minor bug fixes
- [07-24-2016] GLEW 2.0.0 adds support for forward-compatible contexts, adds new extensions, OSMesa and EGL support, MX discontinued and minor bug fixes
diff --git a/doc/install.html b/doc/install.html
index 9b12d4a..4b77af3 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/doc/log.html b/doc/log.html
index 86373c7..a96fb4b 100644
--- a/doc/log.html
+++ b/doc/log.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
@@ -95,6 +94,17 @@ THE POSSIBILITY OF SUCH DAMAGE.
Change Log
+
+
+- 2.3.1 [01-24-2026]
+
+
+
- 2.3.0 [12-27-2025]
@@ -104,11 +114,17 @@ THE POSSIBILITY OF SUCH DAMAGE.
- GL_ARM_shader_core_properties
- GL_EXT_EGL_image_storage_compression
+
- GL_EXT_fragment_shading_rate
- GL_EXT_framebuffer_blit_layers
+
- GL_EXT_mesh_shader
- GL_EXT_separate_depth_stencil
- GL_EXT_shader_clock
+
- GL_EXT_shader_realtime_clock
- GL_EXT_shader_samples_identical
+
- GL_EXT_shader_texture_samples
- GL_EXT_texture_storage_compression
+
- GL_HUAWEI_program_binary
+
- GL_HUAWEI_shader_binary
- GL_IMG_pvric_end_to_end_signature
- GL_IMG_tile_region_protection
- GL_MESA_bgra
@@ -124,6 +140,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
- GL_QCOM_render_sRGB_R8_RG8
- GL_QCOM_render_shared_exponent
- GL_QCOM_shading_rate
+
- GL_QCOM_texture_foveated2
- GL_QCOM_texture_lod_bias
- GL_QCOM_ycbcr_degamma
- EGL_ANDROID_telemetry_hint
diff --git a/doc/wglew.html b/doc/wglew.html
index 8958ec9..aed8dfa 100644
--- a/doc/wglew.html
+++ b/doc/wglew.html
@@ -46,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Latest Release: 2.3.0 |
+| Latest Release: 2.3.1 |
|
 |
|
@@ -73,11 +73,10 @@ THE POSSIBILITY OF SUCH DAMAGE.
-| Last Update: 06-20-2025 |
+| Last Update: 01-24-2026 |

- 
-
+
|
diff --git a/include/GL/glew.h b/include/GL/glew.h
index 5db218c..90c285e 100644
--- a/include/GL/glew.h
+++ b/include/GL/glew.h
@@ -216,7 +216,8 @@ typedef _W64 int ptrdiff_t;
*/
#if defined(__APPLE__) || defined(__linux__)
-# if defined(__cplusplus)
+/* GCC12 errors out when including with __cplusplus < 201103L */
+# if defined(__cplusplus) && __cplusplus >= 201103L
# include
# include
# else
@@ -9978,6 +9979,7 @@ typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLen
typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
+typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
@@ -10194,6 +10196,7 @@ typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, G
#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT)
#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT)
#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT)
+#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT)
#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT)
#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT)
#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT)
@@ -24399,6 +24402,7 @@ GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT;
GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT;
GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT;
GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT;
+GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT;
GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT;
GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT;
GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT;
@@ -26998,10 +27002,10 @@ GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint;
/* GLEW version info */
/*
-VERSION 2.3.0
+VERSION 2.3.1
VERSION_MAJOR 2
VERSION_MINOR 3
-VERSION_MICRO 0
+VERSION_MICRO 1
*/
/* API */
diff --git a/src/glew.c b/src/glew.c
index 463ea89..56b8aac 100644
--- a/src/glew.c
+++ b/src/glew.c
@@ -1902,6 +1902,7 @@ PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT = NULL;
PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT = NULL;
PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT = NULL;
PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT = NULL;
+PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT = NULL;
PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT = NULL;
PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT = NULL;
PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT = NULL;
@@ -14059,6 +14060,7 @@ static GLboolean _glewInit_GL_EXT_direct_state_access (void)
r = ((glMultiTexSubImage2DEXT = (PFNGLMULTITEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage2DEXT")) == NULL) || r;
r = ((glMultiTexSubImage3DEXT = (PFNGLMULTITEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage3DEXT")) == NULL) || r;
r = ((glNamedBufferDataEXT = (PFNGLNAMEDBUFFERDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferDataEXT")) == NULL) || r;
+ r = ((glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageEXT")) == NULL) || r;
r = ((glNamedBufferSubDataEXT = (PFNGLNAMEDBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferSubDataEXT")) == NULL) || r;
r = ((glNamedCopyBufferSubDataEXT = (PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedCopyBufferSubDataEXT")) == NULL) || r;
r = ((glNamedFramebufferRenderbufferEXT = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferRenderbufferEXT")) == NULL) || r;
@@ -23730,10 +23732,10 @@ const GLubyte * GLEWAPIENTRY glewGetString (GLenum name)
static const GLubyte* _glewString[] =
{
(const GLubyte*)NULL,
- (const GLubyte*)"2.3.0",
+ (const GLubyte*)"2.3.1",
(const GLubyte*)"2",
(const GLubyte*)"3",
- (const GLubyte*)"0"
+ (const GLubyte*)"1"
};
const size_t max_string = sizeof(_glewString)/sizeof(*_glewString) - 1;
return _glewString[(size_t)name > max_string ? 0 : (size_t)name];
diff --git a/src/glewinfo.c b/src/glewinfo.c
index bf828cb..a32b90b 100644
--- a/src/glewinfo.c
+++ b/src/glewinfo.c
@@ -4790,6 +4790,7 @@ static void _glewInfo_GL_EXT_direct_state_access (void)
glewInfoFunc(fi, "glMultiTexSubImage2DEXT", glMultiTexSubImage2DEXT == NULL);
glewInfoFunc(fi, "glMultiTexSubImage3DEXT", glMultiTexSubImage3DEXT == NULL);
glewInfoFunc(fi, "glNamedBufferDataEXT", glNamedBufferDataEXT == NULL);
+ glewInfoFunc(fi, "glNamedBufferStorageEXT", glNamedBufferStorageEXT == NULL);
glewInfoFunc(fi, "glNamedBufferSubDataEXT", glNamedBufferSubDataEXT == NULL);
glewInfoFunc(fi, "glNamedCopyBufferSubDataEXT", glNamedCopyBufferSubDataEXT == NULL);
glewInfoFunc(fi, "glNamedFramebufferRenderbufferEXT", glNamedFramebufferRenderbufferEXT == NULL);
| | | | | | | | | | | | |