Use bitset instead of mucking around with <<, | and &

This commit is contained in:
2004-05-16 12:55:05 +00:00
parent c50055204d
commit 2144f20b04

View File

@@ -60,6 +60,7 @@
#include <vector>
#include <iostream>
#include <algorithm>
#include <bitset>
#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<bgl::NUM_EXTENSIONS> enabled_extensions;
static std::vector<STR_String> 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)