【问题标题】:What does the syntax [] mean in this case?在这种情况下,语法 [] 是什么意思?
【发布时间】:2019-10-15 06:03:00
【问题描述】:

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

【问题讨论】:

    标签: python python-3.x shader pyopengl


    【解决方案1】:

    函数glShaderSource接受代码sn-ps的列表。
    参见glShaderSource的PyOpenGL文档:

    glShaderSource( GLhandle(shaderObj),[bytes(string),...]) -> None
    

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

    另见glShaderSource的C规范

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 2017-03-28
      • 2016-08-26
      • 2014-10-27
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 2016-10-05
      相关资源
      最近更新 更多