透明度问题:SDL_SetTextureBlendMode



我有一个具有透明背景的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:生成完全透明的纹理

相关内容

  • 没有找到相关文章

最新更新