Python 正在将pygame.Surface()加载到pygame.OPENGL显示器上
如何将pygame.Surface()对象blit到pygame.OPENGL显示器上并翻转显示器Python 正在将pygame.Surface()加载到pygame.OPENGL显示器上,python,pygame,Python,Pygame,如何将pygame.Surface()对象blit到pygame.OPENGL显示器上并翻转显示器 import pygame pygame.init() RES = (640, 480) display = pygame.display.set_mode(RES, pygame.FULLSCREEN | pygame.OPENGL) bg_img = pygame.Surface(RES) bg_img.fill((255, 255, 255)) display.blit(bg_img
import pygame
pygame.init()
RES = (640, 480)
display = pygame.display.set_mode(RES, pygame.FULLSCREEN | pygame.OPENGL)
bg_img = pygame.Surface(RES)
bg_img.fill((255, 255, 255))
display.blit(bg_img, (0, 0))
pygame.quit()
sys.exit()
给我
Traceback (most recent call last):
File "C:/Game Dev/TESTS/Clock Comparison/opengl_test.py", line 12, in <module>
display.blit(bg_img, (0, 0))
error: Cannot blit to OPENGL Surfaces (OPENGLBLIT is ok)
回溯(最近一次呼叫最后一次):
文件“C:/Game Dev/TESTS/Clock Comparison/opengl_test.py”,第12行,在
显示.blit(bg_img,(0,0))
错误:无法blit到OPENGL曲面(OPENGLBLIT正常)
您不能。
为避免此错误,显示界面需要使用pygame.OPENGLBLIT
标志,而不是pygame.OPENGL
标志,但在运行以下代码后,则:
import pygame
import sys
pygame.init()
RES = (640, 480)
display = pygame.display.set_mode(RES, pygame.OPENGLBLIT)
bg_img = pygame.Surface(RES).
bg_img.fill((255, 255, 255))
display.blit(bg_img, (0, 0))
pygame.display.flip()
input()
pygame.quit()
sys.exit()
显示窗口保持空白
pygame文档将此标志列为:
创建OpenGL渲染上下文/
并将其用于布告。过时的
您需要找到一种方法来完成您在
pyOpenGL
本身中尝试的任何操作。您是否有理由认为正常的快速浏览和翻转方法不起作用?如果您关心效率,请调用surface.convert
或surface.convert_alpha
可能会有所改进(没有参数,它们会使曲面与显示曲面具有相同的像素格式)。感谢您的帮助!(已编辑的问题)-这就是原因。(convert()/convert_alpha()无法解决此问题)