SDL2入门(九)调节texture透明度

 时间:2026-02-13 08:41:41

1、利用第三节课的代码先显示这张图片:修改了代码的图片路径和显示位置,见下图红色标记。运行结果如图。

SDL2入门(九)调节texture透明度

SDL2入门(九)调节texture透明度

2、现在只需添加两行代码即可实现texture透明度。见下图红色标记。

SDL2入门(九)调节texture透明度

3、第12行:SDL_SetTextureBlendMode是设置混合模式的函数,texture为混合的对象,SDL_BLENDMODE_BLEND是透明混合。另外还有SDL_BLENDMODE_NONE:没有混合;SDL_BLENDMODE_ADD:添加颜色混合;SDL_BLENDMODE_MOD:颜色调整混合。详情可查看官网SDL wiki。

SDL2入门(九)调节texture透明度

4、第13行:SDL_SetTextureAlphaMode是渲染texture时设置它的透明度。参数:255/2是一半透明,它取值范围:0~255,另外255是不透明,0是全透明。

SDL2入门(九)调节texture透明度

5、运行结果。

相比之前的图片,这个图片相对暗淡。

SDL2入门(九)调节texture透明度

6、代码:

#include <SDL2/SDL.h>

#include <SDL2/SDL_image.h>

int main(int argc,char**argv)

{

SDL_Init(SDL_INIT_VIDEO);

SDL_Window*window=SDL_CreateWindow("调节texture透明度", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 720, 1280, SDL_WINDOW_SHOWN);

SDL_Renderer*renderer=SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

SDL_RenderClear(renderer);

SDL_Surface*surface=IMG_Load("./resource/circle.png");

SDL_Rect box={150, 400, surface->w, surface->h};

SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer, surface);

SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);

SDL_SetTextureAlphaMod(texture, 255/2);

SDL_RenderCopy(renderer, texture, NULL, &box);

SDL_RenderPresent(renderer);

SDL_Delay(6000);

SDL_FreeSurface(surface);

SDL_DestroyTexture(texture);

SDL_DestroyRenderer(renderer);

SDL_DestroyWindow(window);

SDL_Quit();

}

  • 迅雷该资源被举报无法添加到高速通道怎样解决?
  • TIM与好友视频如何拍照 怎么设置照片保存到哪里
  • 《刺客信条4:黑旗》图文攻略:[21]不再是男人
  • 怎样安装psp插件
  • 如何在注册表中设置默认软件的安装路径?
  • 热门搜索
    龟苓膏是什么做的 directx11怎么安装 如何举报垃圾短信 xing生活 死刑如何执行 健康生活 vj是什么 如何调动员工积极性 生活启示录 牙缝黑怎么办