masked_blit Allegro 4.2.1

时间:2014-04-26 07:21:13

标签: c++ allegro

当我使用masked_blit函数时:

masked_blit( animations[which], buffer, 0, 0, x, y, animations[which]->w, animations[which]->h )

我的缓冲区出现了错误的颜色,我的bmp就像转移或震惊一样。

这是我的问题。

enter image description here

感谢您的帮助

1 个答案:

答案 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