当我使用masked_blit函数时:
masked_blit( animations[which], buffer, 0, 0, x, y, animations[which]->w, animations[which]->h )
我的缓冲区出现了错误的颜色,我的bmp就像转移或震惊一样。
这是我的问题。
感谢您的帮助
答案 0 :(得分:0)
问题的最可能原因是您使用video bitmap
进行此次调用,而您的硬件不支持或两个位图(animations[]
和{ {1}})是不同的颜色深度。
要放弃硬件不支持此功能的可能性,请检查您的PC上是否设置了buffer
标志中的GFX_HW_VRAM_BLIT_MASKED
位。
如果它们的颜色深度相同,但您的硬件不支持该功能,则可以始终使用gfx_capabilities
作为源的调用,因此动画将驻留在RAM而不是视频内存中。
来源:
Allegro 4.2.1 manual (pdf) - 1.15.3 masked_blit 和 1.9.13 gfx_capabilities