上下文
我有一张SDL2的图片。我可以用SDL_RenderCopy
或SDL_RenderCopyEx
来显示它。我想现在改变我的图像的不透明度。
我试过的
我试着根据文档使用SDL_SetTextureAlphaMod
。
SDL_SetTextureAlphaMod(my_texture, 122);
它不起作用。我试着把它放在
SDL_RenderClear
之前,SDL_RenderClear
之后甚至SDL_RenderCopy
之后。这些都不管用。之后,我尝试将渲染器从
SDL_RENDERER_ACCELERATED
更改为SDL_RENDERER_SOFTWARE
,然后。。。成功了。但是,它明显比SDL_RENDERER_ACCELERATED
慢。我必须补充一点,我没有任何关于
SDL_RENDERER_ACCELERATED
的错误。没有错误,但没有结果。我想做什么
我想用
SDL_RENDERER_ACCELERATED
而不是SDL_RENDERER_SOFTWARE
来改变图像的不透明度。编辑:
我试过使用
SDL_Image
,现在只在加载BMP图像时有问题。我想我应该把BMP转换成另一种格式。知道吗?我在Windows和Linux上都有这个问题,我使用的是SDL 2.0.5。
最佳答案
我不得不补充:
SDL_SetTextureBlendMode(my_texture, SDL_BLENDMODE_BLEND);
在设置
SDL_SetTextureAlphaMod
之前,让它处理任何图像。关于c - SDL_SetTextureAlphaMod对SDL_RENDERER_ACCELERATED无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44030993/