我目前正在使用glLoadGen来加载OpenGL函数,
有一个选项可以将所有函数指针放在namespace gl
中
所以我可以像gl::CreateShader( ... )
该功能的缺点是什么?
它不会使用gl **函数或宏来污染全局命名空间; 但我担心有一些潜在的缺点......
答案 0 :(得分:0)
很可能你不想这样做,因为它们将不再遵循普遍使用的C语言绑定命名约定。通过将GL_
添加到常量的开头并将gl
添加到函数的开头,已经以语言无关的方式解决了整个命名空间问题。
您可以自由地在此处执行任何操作,但C或C ++等语言中的全局命名空间已被链接到的基础库污染。例如,在Windows上,您可以使用GL 1.1中的所有函数,只需使用标准C语言绑定名称即可。这是一组包含平台OpenGL标题的大约400个函数。