Python 如何判断convert()/convert_alpha()是否已在pygame.Surface上运行?

Python 如何判断convert()/convert_alpha()是否已在pygame.Surface上运行?,python,pygame,pygame-surface,Python,Pygame,Pygame Surface,这个标题说明了一切,真的。我正在编写处理来自多个源的pygame.Surface对象的函数。在其他操作中,这些函数将确保它们返回的曲面对象至少被convert()ed一次(或者,根据用户偏好,convert_alpha()ed),这是优化它们以在当前显示模式下闪烁所需的。但是我不想不必要地运行convert()或convert\u alpha()方法,因为它们会创建曲面的副本,因此会占用时间和内存。我如何判断是否需要这样做?我已经查看了S.get_flags()在S=S.convert_alph

这个标题说明了一切,真的。我正在编写处理来自多个源的
pygame.Surface
对象的函数。在其他操作中,这些函数将确保它们返回的
曲面
对象至少被
convert()
ed一次(或者,根据用户偏好,
convert_alpha()
ed),这是优化它们以在当前显示模式下闪烁所需的。但是我不想不必要地运行
convert()
convert\u alpha()
方法,因为它们会创建曲面的副本,因此会占用时间和内存。我如何判断是否需要这样做?我已经查看了
S.get_flags()
S=S.convert_alpha()
之前和之后的输出,但它似乎没有改变。
S.get_alpha()
的标量值确实发生了变化(从255变为0),但我不认为这是有意义的或可靠的(并且它不能解决在不需要alpha混合的情况下是否必须
.convert()
的问题)。

我不相信现有的API提供了这样做的方法。我认为其预期用途是转换所有曲面(为什么不转换呢?),因此您无需担心


也许可以子类化
pygame.Surface
并重写convert方法,以您希望的方式设置标志。

也许可以使用Surface和额外信息创建自己的类。