当我使用masked_blit函数时:
masked_blit( animations[which], buffer, 0, 0, x, y, animations[which]->w, animations[which]->h )我得到了错误的颜色在我的缓冲区,我的bmp是像移位或冲击。
这是我的问题。

感谢你的帮助
发布于 2014-04-29 08:19:49
问题最有可能的原因是,您在此调用中使用了video bitmap,而您的硬件不支持它。或两个位图(animations[]和buffer)的颜色深度不同。
要排除硬件不支持此功能的可能性,请检查您的PC上是否设置了gfx_capabilities标志中的GFX_HW_VRAM_BLIT_MASKED位。
如果它们具有相同的颜色深度,但您的硬件不支持该功能,则始终可以使用memory bitmaps调用作为源,因此动画将驻留在内存中,而不是视频内存中。
来源:
Allegro 4.2.1 manual (pdf) - Sections 1.15.3 masked_blit和1.9.13 gfx_capabilities
https://stackoverflow.com/questions/23307972
复制相似问题