python - 在这种情况下,语法 [] 意味着什么?

标签 python python-3.x shader pyopengl

我正在通过 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 规范

关于python - 在这种情况下,语法 [] 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56363720/

相关文章:

python - Pandas DataFrame 替换不适用于 inplace=True

python - 将文本分成句子 NLTK 与 spaCy

python - UDP 服务器和 UDP 客户端之间的区别 : sock. bind((host, port)) 是在客户端还是服务器端?

python - 在Python中将字符串数据转换为整数

python - 如何在Python中将文件的行读取为列表而不是字符串

OpenGL - 不同着色器阶段的显式统一位置

python - 我可以在交互模式下访问 python 中的 sys.argv 吗?

python - 使用 Genfromtxt 仅对一列出错。可以读取所有其他列。我该如何解决?

opengl - 如何将自定义 C++ 矩阵类传递给 glUniformMatrix

ios - 如何在 Scenekit 中确定几何表面的方向