我正在通过GitHubGist上的示例项目来学习如何在pyopengl中使用着色器。我遇到了“ []”语法,在这种情况下我不知道这意味着什么。
我只知道索引数组的“ []”的用法。
def initShader(self, vertex_shader_source, fragment_shader_source):
# create program
self.program=glCreateProgram()
print('create program')
printOpenGLError()
# vertex shader
print('compile vertex shader...')
self.vs = glCreateShader(GL_VERTEX_SHADER)
glShaderSource(self.vs, [vertex_shader_source])
glCompileShader(self.vs)
glAttachShader(self.program, self.vs)
printOpenGLError()
我不明白glShaderSource()中使用的“ []”语法
答案 0 :(得分:2)
函数glShaderSource
接受一系列代码片段。
请参阅glShaderSource
的PyOpenGL文档:
glShaderSource( GLhandle(shaderObj),[bytes(string),...]) -> None
[vertex_shader_source]
是字符串列表,其中每个字符串包含glsl源代码([]
生成List
)。
在这种情况下,列表仅包含一个元素。
列表的元素是串联并编译的。
另请参见glShaderSource
的C规范