SDL2设置透明度

SDL_SetRenderDrawColor 完全支持透明度(Alpha)

一、函数原型

c 复制代码
int SDL_SetRenderDrawColor(
    SDL_Renderer* renderer,
    Uint8 r,   // 红 0~255
    Uint8 g,   // 绿 0~255
    Uint8 b,   // 蓝 0~255
    Uint8 a    // 透明度 0~255(0=全透,255=不透明)
);

二、关键:必须开启混合模式(否则 Alpha 无效)

默认 Alpha 是不生效的,要先设混合模式:

c 复制代码
// 1. 开启混合
SDL_SetRenderDrawBlendMode(render, SDL_BLENDMODE_BLEND);

// 2. 设置半透明红色(A=128,50%透明)
SDL_SetRenderDrawColor(render, 255, 0, 0, 128);

// 3. 画矩形(带透明度)
SDL_Rect rect = {100, 100, 200, 200};
SDL_RenderFillRect(render, &rect);

三、常见坑

  • 忘了 SDL_SetRenderDrawBlendMode() → Alpha 无效,永远不透明。
  • Alpha 值范围 0~255:0 全透,255 不透明。
  • SDL_RenderClear() 的 Alpha:清屏也受 A 影响,但窗口背景是否透要看系统。
相关推荐
kloc1 小时前
聊天室项目入口网关子服务的实现
linux·c++
csdn_aspnet4 小时前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
小七在进步5 小时前
string的使用(2)
c++
青少儿编程课堂6 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
wo_jack7 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
青少儿编程课堂9 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
草莓熊Lotso9 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
David猪大卫1 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
HPtiger1 天前
C++ 入门笔记:从 C 到 C++ 的核心过渡(命名空间、输入输出、缺省参数、重载、引用、内联)
c语言·c++·学习
努力努力再努力wz1 天前
【Lua 进阶系列】从 C++ 对象到 Lua 变量:一文理解 userdata、Lua 栈与元表绑定机制
c++·junit·lua