gpt4 book ai didi

c++ - 为什么 glGetString(GL_EXTENSIONS) 的搜索不能正常工作?

转载 作者:太空狗 更新时间:2023-10-29 20:06:47 26 4
gpt4 key购买 nike

我读了这个页面: 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com