我有一个具有透明背景的PNG文件。透明背景片段
我将其设置为表面,然后设置为tex:
SDL_Texture* m_Tex = SDL_CreateTextureFromSurface(renderer, surface);
我希望这个纹理具有闪烁效果,所以我将其传递给setTextureBlendMode函数
SDL_SetTextureBlendMode(tex, SDL_BLENDMODE_BLEND);
Uint8 m_Alpha = 255;
我将使用m_Alpha进行闪烁。我将通过按下特定的按钮来激活闪烁。它运行良好。但是为什么在我将纹理的背景恢复为SDL_BLENDMODE_NONE:后,它不再透明
SDL_SetTextureBlendMode(tex, SDL_BLENDMODE_NONE);
BLENDMODE_NONE 之后不再透明的代码段
有没有办法让我的纹理的背景再次透明?我的意思是,在研究了足够多之后,我似乎找不到除了SDL_SetColorKey之外的方法。但是SDL_SetColorKey需要再次加载曲面。这只意味着我将在surface上再次设置PNG文件,然后在tex上设置。我认为每次我想让tex停止闪烁时都这样做并不理想。请帮忙。谢谢
SDL_SetTextureBlendMode(tex, SDL_BLENDMODE_NONE);
使用Alpha渲染纹理!=1,您将需要一些混合模式。
在混合模式下,您正在向系统描述如何将背景色与前景色合并。
你可以从这个线程中得到一个基本的想法。SDL2:生成完全透明的纹理