作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我读了这个页面: http://www.opengl.org/wiki/GlGetString
For example, if the extension GL_EXT_pixel_transform_color_table is listed, doing a simple search for GL_EXT_pixel_transform will return a positive whether or not it is defined.
既然它的空间是分开的,那怎么可能呢?为什么不在要搜索的关键字后加一个空格?
例如:
char *exts = (char *)glGetString(GL_EXTENSIONS);
if(!strstr(exts, "GL_EXT_pixel_transform ")){ // notice the space!
// not supported
}
我想知道为什么这行不通,因为对我来说它确实有效。
最佳答案
您可以使用空格作为分隔符对返回的字符串进行标记,以实现更可靠的搜索(如果您不想使用较新的 API)。例如。与 Boost.Tokenizer :
typedef boost::tokenizer< boost::char_separator<char> > tokenizer;
boost::char_separator<char> sep(" ");
tokenizer tok(static_cast<const char*>(glGetString(GL_EXTENSIONS)), sep);
if (std::find(tok.begin(), tok.end(), "GL_EXT_pixel_transform") != tok.end()) {
// extension found
}
关于c++ - 为什么 glGetString(GL_EXTENSIONS) 的搜索不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264995/
我读了这个页面: http://www.opengl.org/wiki/GlGetString For example, if the extension GL_EXT_pixel_transform
我是一名优秀的程序员,十分优秀!