在ubuntu14.04上,我正在测试一个使用pyglet的开源项目。
我直接和单独运行/usr/bin/Xorg
,使用带有Nvidia GPU的Nvidia驱动程序。在
项目有this part:
buffer = pyglet.image.get_buffer_manager().get_color_buffer()
image_data = buffer.get_image_data()
并且pyglet.gl.lib.GLException: invalid operation
在执行第二行时发生。在
因此,我使用PYGLET_DEBUG_GL_*
环境变量进行了调试,并发现在调用glReadPixels(0, 0, 600, 400, 6407, 5121, <pyglet.image.c_ubyt)
时发生了错误。在
ColorBufferImage
类最初使用GL_RGBA
,我试图通过修改2行here将其更改为使用GL_RGB
。在
我没有预料到,但是GL_RGB
使glReadPixels()
调用没有出现错误,尽管我不能使用它,因为开源项目假定它是GL_RGBA
。在
我真的很想知道如何使GL_RGBA
工作。。。在
有人能帮帮我吗?在
更新:我刚刚尝试了另一个选项,我认为将数据类型从GL_UNSIGNED_BYTE
更改为GL_UNSIGNED_SHORT
起作用(我还将缓冲区的原始类型从GLubyte
更改为GLushort
)。如果这是对的,这是皮格勒虫吗?在
目前没有回答
相关问题 更多 >
编程相关推荐