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