这些OpenGL函数的末尾是否需要“ 3f”?

时间:2019-09-03 03:20:28

标签: c++ opengl freeglut

好的,所以我试图用C ++编写一些代码,然后像一些疯狂的小孩一样尝试并尝试使用OpenGL。但是问题是,每次您尝试调用顶点或设置颜色时,我都要在3f上绊脚石,必须写glColor3fglVertex3f

例如在这个三角形中

glBegin(GL_TRIANGLES);
       glColor3f(0.4,0.4,0.4,0.4)
            glVertex3f(x,y,z)
            glVertex3f(x,y,z)
            glVertex3f(x,y,z)

现在我本可以不去努力,然后写道:

glBegin(GL_TRIANGLES);
       glColor(0.4,0.4,0.4,0.4)
            glVertex(x,y,z)
            glVertex(x,y,z)
            glVertex(x,y,z)

在没有3f的情况下,您看到没有人向我表明原因。

请告诉我这个3f是什么意思。我以为是十六进制或某些东西使63仍然没有意义

1 个答案:

答案 0 :(得分:2)

因为OpenGL是C API,并且在C中没有函数重载,但是OpenGL希望提供直接以特定格式提供数据的功能,因此这些函数有不同名称的版本,具有不同的参数类型。

例如glVertex

如果您真的可以编译裸露的requestHeaders[_options.OriginalProtoHeaderName] = request.Scheme; ,则它是其他版本之一的快捷方式,但是我不认为这是规范要求的,因此您可能不应该使用它。