diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp index eaed233b86c..2c7112e2e3c 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp @@ -60,6 +60,7 @@ #include #include #include +#include #include "STR_String.h" @@ -217,7 +218,7 @@ static void *bglGetProcAddress(const GLubyte* entry) GL Extension Manager. */ /* Bit array of available extensions */ -static unsigned int enabled_extensions[(bgl::NUM_EXTENSIONS + 8*sizeof(unsigned int) - 1)/(8*sizeof(unsigned int))]; +static std::bitset enabled_extensions; static std::vector extensions; static int m_debug; @@ -227,7 +228,7 @@ static void EnableExtension(bgl::ExtensionName name) { unsigned int num = (unsigned int) name; if (num < bgl::NUM_EXTENSIONS) - enabled_extensions[num/(8*sizeof(unsigned int))] |= (1<<(num%(8*sizeof(unsigned int)))); + enabled_extensions.set(num); } @@ -251,10 +252,10 @@ void InitExtensions(int debug) bool QueryExtension(ExtensionName name) { unsigned int num = (unsigned int) name; - if (num >= NUM_EXTENSIONS) - return false; - - return (enabled_extensions[num/(8*sizeof(unsigned int))] & (1<<(num%(8*sizeof(unsigned int))))) != 0; + if (num < NUM_EXTENSIONS) + return enabled_extensions[num]; + + return false; } bool QueryVersion(int major, int minor)