SDL2纹理渲染目标没有alpha透明度

时间:2015-04-22 20:14:03

标签: c ubuntu sdl-2

使用SDL2在C上编程时遇到了问题。我已经渲染了一个纹理简单的正方形图像,在中心是透明的。但是当我绘制渲染它们的纹理时,它们不是透视的。我甚至尝试用SDL_SetTextureAlphaMod()改变渲染纹理的透明度,但它并没有改变任何东西。如果我更改正在渲染的纹理上的alpha(正方形)。他们变得更暗,但他们仍然覆盖他们背后的任何东西。所以我愿意接受建议。

这是我在方块textueres上降低alpha值的图像:http://imgur.com/W8dNbBY

1 个答案:

答案 0 :(得分:3)

首先,如果您想拥有透明图像,SDL2中有两种方法。

  • 方法1 :(静态方法)

使用图像编辑软件并直接更改其中的alpha值,它将继续传输到SDL2。

方法2 :(动态方法)

  
    

SDL_SetTextureBlendMode(texture,SDL_BLENDMODE_BLEND); //这在blendmode中设置纹理

         

alpha = xx //此部分应该是您更改Alpha值的位置。你可以制作淡入淡出效果等等......只需将更改放在这里。

         

SDL_SetTextureAlphaMod(texture,alpha); //将alpha设置为纹理

         

SDL_RenderCopy(渲染器,纹理,NULL和& rect); //使用全新的alpha~

重绘图像