opengl glVertexAttribPointer()无法在Wayland环境中找到有效上下文?

mccptt67  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(214)

我尝试绘制彩色三角形。2我想使用现代OpenGL并通过顶点属性数组转换数据。

  • 顶点着色器和片段着色器仅将颜色从输入传递到输出,不包含任何有趣的代码 *
pg.init()

triangle = np.array( triangle, dtype=np.float32 )
triangle_buffer = glGenBuffers( 1 )

glBindBuffer( GL_ARRAY_BUFFER, triangle_buffer )
glBufferData( GL_ARRAY_BUFFER, triangle.nbytes, triangle, GL_STATIC_DRAW )

vertex_shader = compileShader( vertex_src, GL_VERTEX_SHADER )
fragment_shader = compileShader( fragment_src, GL_FRAGMENT_SHADER )
shader_program = compileProgram( vertex_shader, fragment_shader )
glUseProgram( shader_program )

glEnableVertexAttribArray( 0 )
glVertexAttribPointer( 0, 3, GL_FLOAT, GL_FALSE, triangle.itemsize * 6, ctypes.c_void_p( 0 ) )

当我试图运行这个程序时,抛出了一个异常。

OpenGL.error.Error: Attempt to retrieve context when no valid context

Process finished with exit code 1

我做错了什么

zujrkrfu

zujrkrfu1#

登录时需要将Wayland切换为Xorg!在Wayland上您可以添加env变量PYOPENGL_PLATFORM=x11

相关问题