我注意到程序员制作变量const
和static
. 我了解这些关键字的作用,但我不知道他们为什么使用它们。
OpenGL 学习官方指南 1.1 版第 2 章中的示例 1
static GLint vertices[] = {25, 25,
100, 325,
175, 25,
175, 325,
250, 25,
325, 325};
static GLfloat colors[] = {1.0, 0.2, 0.2,
0.2, 0.2, 1.0,
0.8, 1.0, 0.2,
0.75, 0.75, 0.75,
0.35, 0.35, 0.35,
0.5, 0.5, 0.5};
glEnableClientState (GL_COLOR_ARRAY);
glEnableClientState (GL_VERTEX_ARRAY);
glColorPointer (3, GL_FLOAT, 0, colors);
glVertexPointer (2, GL_INT, 0, vertices);
如果这些数组仅用于单个对象实例,为什么它们必须是静态的?
Wikibooks 教程 1 上的OpenGL 编程示例 2
GLuint fs = glCreateShader(GL_FRAGMENT_SHADER);
const char *fs_source =
"#version 120 \n"
"void main(void) { "
" gl_FragColor[0] = 0.0; "
" gl_FragColor[1] = 0.0; "
" gl_FragColor[2] = 1.0; "
"}";
glShaderSource(fs, 1, &fs_source, NULL);
fs_source char 数组在设置后不会更改。但是绝对有必要让它保持不变吗?它会提高性能吗?