Python 正在将pygame.Surface()加载到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

如何将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, (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()无法解决此问题)