aboutsummaryrefslogtreecommitdiff
path: root/source/Irrlicht/mt_opengl_loader.cpp
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2023-04-06 11:20:03 +0200
committersfan5 <sfan5@live.de>2023-04-06 11:20:03 +0200
commit3a074e4124fa483fb3188b57d89e199f6d04b568 (patch)
treedf7609b25b8a7020ca13cf6d869a862d9fab80de /source/Irrlicht/mt_opengl_loader.cpp
parent58a96b7d2399ede5e953518b784ecffd4751b765 (diff)
parent70ee4b05aa4a78809552e6bc6c3ff7cfe6c012af (diff)
downloadirrlicht-3a074e4124fa483fb3188b57d89e199f6d04b568.tar.xz
Merge branch 'opengl3' of https://github.com/numberZero/irrlicht
Diffstat (limited to 'source/Irrlicht/mt_opengl_loader.cpp')
-rwxr-xr-xsource/Irrlicht/mt_opengl_loader.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/source/Irrlicht/mt_opengl_loader.cpp b/source/Irrlicht/mt_opengl_loader.cpp
index 96d7587..26de3d3 100755
--- a/source/Irrlicht/mt_opengl_loader.cpp
+++ b/source/Irrlicht/mt_opengl_loader.cpp
@@ -756,11 +756,22 @@ void OpenGLProcedures::LoadAllProcedures(irr::video::IContextManager *cmgr)
if (!NamedBufferPageCommitment) NamedBufferPageCommitment = (PFNGLNAMEDBUFFERPAGECOMMITMENTPROC_MT)cmgr->getProcAddress("glNamedBufferPageCommitmentARB");
if (!TexPageCommitment) TexPageCommitment = (PFNGLTEXPAGECOMMITMENTPROC_MT)cmgr->getProcAddress("glTexPageCommitmentARB");
+ // OpenGL 3 way to enumerate extensions
+ int ext_count = 0;
+ GetIntegerv(NUM_EXTENSIONS, &ext_count);
+ extensions.reserve(ext_count);
+ for (int k = 0; k < ext_count; k++)
+ extensions.emplace((char *)GetStringi(EXTENSIONS, k));
+ if (ext_count)
+ return;
+
+ // OpenGL 2 / ES 2 way to enumerate extensions
+ auto ext_str = GetString(EXTENSIONS);
+ if (!ext_str)
+ return;
// get the extension string, chop it up
- std::string ext_string = std::string((char*)GetString(EXTENSIONS));
- std::stringstream ext_ss(ext_string);
+ std::stringstream ext_ss((char*)ext_str);
std::string tmp;
while (std::getline(ext_ss, tmp, ' '))
extensions.emplace(tmp);
-
}