我尝试绘制彩色三角形。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
我做错了什么
1条答案
按热度按时间zujrkrfu1#
登录时需要将
Wayland
切换为Xorg
!在Wayland上您可以添加env变量PYOPENGL_PLATFORM=x11
。