如何解决尝试在pyopengl中缩放网格时出现OpenGL错误1282
我尝试将表面放大一点,所以尝试了openGL,并出现了显示openGL错误的错误
这是代码 https://pastebin.pl/view/8366ece3
我将展示重要的部分:
def main():
window = pg.display.set_mode((sw,sh))
gridlength = 35
level = 1
grid = drawgrid(gridlength + level)
samplechar = character(gridlength,grid)
mapgen(grid,gridlength,samplechar,level)
for i in grid:
print(*i)
run = True
while run:
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
quit()
elif event.type == pg.MOUSEBUTTONDOWN:
if event.button == 4:
glScaled(1.2,1.2,1.2);
elif event.button == 5:
glScaled(0.8,0.8,0.8);
和错误:
File "src/errorchecker.pyx",line 58,in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckerror
OpenGL.error.GLError: GLError(
err = 1282,description = b'invalid operation',baSEOperation = glScaled,cArguments = (1.2,1.2)
)
解决方法
任何OpenGL语句的当前有效OpenGL Context。创建显示表面时,需要设置pygame.OPENGL
标志:
window = pg.display.set_mode((sw,sh))
window = pg.display.set_mode((sw,sh),pygame.DOUBLEBUF | pygame.OPENGL)
无论如何,glScale
仅适用于以OpenGL立即模式(glBegin
/glEnd
)绘制的几何,但不适用于 Sprites 或pygame绘制的几何功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。