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

 时间:2024-09-23 17:11:50

texture可以由图片或文字转换而来,当我们要实现texture透明度怎么办?这里以图片circle.png来介绍。

工具/原料

c4droid、sdl插件

一张图片:circle.png

方法/步骤

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

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

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

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

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

3、第12行:SDL_SetTextureBlendMode是设置混合模式的函数,textur娣定撰钠e为混合的对象,S肛舀辨乔DL_BLENDMODE_BLEND是透明混合。另外还有SDL_BLENDMODE_NONE:没有混合;SDL_BLENDMODE_ADD:添加颜色混合;SDL_BLENDMODE_MOD:颜色调整混合。详情可查看官网SDLwiki。

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

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

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

5、运行结果。相比之前的图片,这个图片相对暗淡。

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

6、代码:#include<SDL2/SDL.h>#includ娣定撰钠e<SDL2/SDL_imag髫潋啜缅e.h>intmain(intargc,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_Rectbox={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插件 如何在注册表中设置默认软件的安装路径?
热门搜索
奥迪报价及图片 偷窥无罪电影 献爱心图片 肚脐电影 图片太大怎么缩小