首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PyOpenGL (PyOpenGL)创建几何着色器失败

使用PyOpenGL (PyOpenGL)创建几何着色器失败
EN

Stack Overflow用户
提问于 2019-03-01 07:03:43
回答 1查看 417关注 0票数 2

我想使用geometry_shader (glCreateShader,GL_GEOMETRY_SHADER)创建glCreateShader,但是我得到了错误。

代码语言:javascript
复制
Traceback (most recent call last):
  File "test.py", line 9, in <module>
    geometry_shader = glCreateShader(GL_GEOMETRY_SHADER)
  File "errorchecker.pyx", line 53, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError (src/errorchecker.c:1218)
OpenGL.error.GLError: GLError(
        err = 1280,
        description = b'invalid enumerant',
        baseOperation = glCreateShader,
        cArguments = (GL_GEOMETRY_SHADER,),
        result = 0
)

我的环境: Python版本:3.6.7

OpenGL核心配置文件版本字符串: 4.5 (核心配置文件)Mesa18.0.5

操作系统版本: ubuntu 18.04(ubuntu 16.04测试相同)

本站我知道最低版本是3.2。所以不应该是版本问题。

它有可能是opengl的python包装程序的错误吗?这是我的测试代码。

代码语言:javascript
复制
import glfw
from OpenGL.GL import *
glfw.init()
glfw.window_hint(glfw.SAMPLES, 4)
window_size = (800, 600)
window = glfw.create_window(*window_size, 'Vehicle Model', None, None)
glfw.make_context_current(window)
vertice_shader = glCreateShader(GL_VERTEX_SHADER)
geometry_shader = glCreateShader(GL_GEOMETRY_SHADER)
glfw.terminate()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-01 07:35:38

验证上下文的GL_VERSION字符串实际上是您所假设的。

Mesa通常只为您提供一个OpenGL 2.1上下文,除非您特别要求一个版本化的核心上下文,尽管随着时间的推移,更多的驱动程序得到了兼容性上下文支持。

使用GLFW时,通常在创建窗口之前通过提示 set请求GL版本,特别是要为GLFW_CONTEXT_VERSION_MAJORGLFW_CONTEXT_VERSION_MINORGLFW_OPENGL_PROFILE设置值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54939551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档