在这种情况下,语法 [] 是什么意思?

What does the syntax [] mean in this case?

我正在通过 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() 中使用的“[]”语法

函数 glShaderSource 接受代码片段列表。
请参阅 glShaderSource:

的 PyOpenGL 文档
glShaderSource( GLhandle(shaderObj),[bytes(string),...]) -> None

[vertex_shader_source]是字符串列表,其中每个字符串包含glsl源代码([]生成一个List)。
在这种情况下,列表只包含一个元素。 列表的元素被连接和编译。

另请参阅 glShaderSource

的 C 规范