diff options
author | sfan5 <sfan5@live.de> | 2023-04-06 11:20:03 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2023-04-06 11:20:03 +0200 |
commit | 3a074e4124fa483fb3188b57d89e199f6d04b568 (patch) | |
tree | df7609b25b8a7020ca13cf6d869a862d9fab80de /source/Irrlicht/mt_opengl_loader.cpp | |
parent | 58a96b7d2399ede5e953518b784ecffd4751b765 (diff) | |
parent | 70ee4b05aa4a78809552e6bc6c3ff7cfe6c012af (diff) | |
download | irrlicht-3a074e4124fa483fb3188b57d89e199f6d04b568.tar.xz |
Merge branch 'opengl3' of https://github.com/numberZero/irrlicht
Diffstat (limited to 'source/Irrlicht/mt_opengl_loader.cpp')
-rwxr-xr-x | source/Irrlicht/mt_opengl_loader.cpp | 17 |
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); - } |