如何使用Opengl在pygame中创建可调整大小的窗口

问题描述

我想使用Pyopengl在pygame中创建可调整大小的窗口,并尝试使用此代码

pygame.display.set_mode(display,DOUBLEBUF|OPENGL,RESIZABLE)

或这个

pygame.display.set_mode(display,pygame.RESIZABLE)

可调整大小未出现。该代码现在可以正常工作:

def main():
pygame.init()
display = (800,600)
pygame.display.set_mode(display,RESIZABLE)
gluPerspective(45,(display[0]/display[1]),0.1,500.0) # настройка камеры угол обзора дальняя и ближняя дистанция рендера
clock = pygame.time.Clock()
FPS = 60
angle=0
distance=20
while True:
     ...
pygame.display.flip()
clock.tick(FPS)

解决方法

您必须通过glViewport将视口的大小调整为窗口和当前帧缓冲区的大小:

glViewport(0,display[0],display[1])
,

假设您要导入pygame.locals,它应该是这样的:

pygame.display.set_mode(display,DOUBLEBUF | OPENGL | RESIZABLE)

基本上,您所有的display flags都应加一个“ |” (烟斗)字符。