SDL_SetColorKey不会将背景设置为透明

时间:2013-02-07 19:09:10

标签: c image transparency sdl

归结为这段代码:

SDL_Surface *smiley = SDL_LoadBMP("./images/smileys/normal_up.bmp");
printf("Transparation worked: %i\n", SDL_SetColorKey(smiley, SDL_SRCCOLORKEY, SDL_MapRGB(smiley->format, 255, 0, 255)));
SDL_BlitSurface(smiley, NULL, window, NULL);
SDL_Flip(window);

这是我使用的image。 在Arch Linux上使用SDL。

1 个答案:

答案 0 :(得分:0)

在SDL_SetColorKey()调用之前的这些行使整个过程发挥作用:

smiley->format->Amask = 0xFF000000;
smiley->format->Ashift = 24;

现在我可以使用32或24 bpp VideoMode的.bmp或.jpg文件,一切正常! 不知道为什么,不知道它是如何工作的。