我正在尝试重新创建当我使用 pygame 使用 glfw 来管理窗口here时得到的行为,code。
我在这里使用 glfw :
def window_resize(window,width,height):
glViewport(0,height)
projection = pyrr.matrix44.create_perspective_projection_matrix(45,width/height,0.1,100)
glUniformMatrix4fv(proj_loc,1,GL_FALSE,projection)
现在,使用 pygame :
def window_resize(event):
if event.type == pygame.VIDEORESIZE:
glViewport(0,event.w,event.h)
# print(event.w,event.h) # To see if there were changes
projection = pyrr.matrix44.create_perspective_projection_matrix(45,1.0*event.w/event.h,100)
glUniformMatrix4fv(proj_loc,projection)
pygame.display.flip()
我认为这是完全相同的,他们应该这样做,但事实并非如此。我该如何解决?
编辑: 当我调整窗口大小时,我希望可以使用透视投影进行自动调整,但是当我使用pygame时,它将无法正常工作。 Here是一些图片,用来解释我想要的行为和所得到的。