例如,如果我想清除颜色缓冲区,我必须打电话:
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>(...)
答案 0 :(得分:8)
因为OpenGL实际上是一个C库,而不是C ++。您可以在C ++中使用它的原因是因为C ++中的一个主要设计考虑因素是它能够使用C代码,但是随之而来的是您使用的C API不可避免的情况下具有良好的C ++接口。