例如,如果我想清除颜色缓冲区,我必须调用:
glClearBufferfv(GL_COLOR, 0, color); //color is a float array of 4 numbers
但是 OpenGL 也提供了
glClearBufferiv(); //expects an int array
glClearBufferuiv(); //expects an unsigned int array
那么为什么 OpenGL 不使用模板呢?像这样:
glClearBuffer<float>(...)
最佳答案
因为OpenGL其实是一个C库,而不是C++。你可以在 C++ 中使用它的原因是因为 C++ 的主要设计考虑之一是它能够使用 C 代码,但不可避免的情况是你使用的 C API 不会有很好的 C++ 接口(interface)。
关于c++ - 为什么 OpenGL 函数不使用模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31127483/