网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月10日漏签0天
sdl吧 关注:4,209贴子:12,531
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回sdl吧
>0< 加载中...

【求解】SDL 2.0如何建立一个完全“空的”的Texture?

  • 取消只看楼主
  • 收藏

  • 回复
  • 国王的预言师
  • 活跃吧友
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如何建立一个完全“空的”的Texture,也就是完全透明的,不会影响到使用SDL_RenderCopy画到上面的半透明图像的效果?
现在我做了如下的测试:
// 建立一个临时的Texture
pTempTexture =SDL_CreateTexture(pRenderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, 500, 500);
//设置叠加模式,这里不是很明白,根据官方文档我觉得应该设置为SDL_BLENDMODE_NONE,可是这样会导致出现黑色的不透明底色
SDL_SetTextureBlendMode(pTempTexture,SDL_BLENDMODE_BLEND);
//切换渲染目标到pTempTexture
SDL_SetRenderTarget(pRenderer, pTempTexture);
// 清空Texture
SDL_SetRenderDrawColor(pRenderer, 0, 0, 0, 0);
SDL_RenderClear(pRenderer);
//复制到这个Texture
SDL_RenderCopyEx(pRenderer, pImg, NULL, &rArea, NULL, NULL, SDL_FLIP_NONE);
//渲染目标切换回默认
SDL_SetRenderTarget(pRenderer, NULL);
// 复制到屏幕缓冲
SDL_RenderCopyEx(pRenderer, pTempTexture,NULL, &rArea2, NULL, NULL, SDL_FLIP_NONE);
这样的方法会导致渲染出来的图像颜色明显偏黑;如图,左边是上面代码的效果,右边是正常的(预期的)的效果。

而如果清空临时Texture时,
使用SDL_SetRenderDrawColor(pRenderer,255, 255, 255, 0);会使图像明显偏白。
而SDL_SetRenderDrawColor(pRenderer,255, 0, 0, 0);会使图像偏红。
所以说明是清空Texture时使用的底色“漏出来”了,这个是为什么呢?
求解:是方法有什么问题?或者是颜色叠加模式的问题,或者是其他的?


  • 国王的预言师
  • 活跃吧友
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@铃铛兮 前感谢解答,现在又有一个新的问题(好像奇怪的问题有点多)
首先我实现了一个函数
int SDL_SavePNG(BYTE *pixel, char *file_name, int w, int h);
用来把ARGB8888格式的像素数据输出到PNG文件
现在把一些”Texture1“Copy到了新的”Texture2“上(不知道这样表述合不合适,反正就是有一堆Texture1,然后都RenderCopy到了新的Texture2上),我希望能有某种办法获取带透明度的像素数据;
现在问题来了:
1、设置的SDL_TEXTUREACCESS_TARGET的Texture2是Write-Only的,并不能LockTexture
2、Surface使用的是Software Renderer,Texture1无法跨渲染器Copy,所以这些Texture1无法贴到一个Surface上
3、我觉得SDL_RenderReadPixels有些问题,无论我的RenderTarget设置的是什么(比如说我把targer设置为Texture2),它总是会读取”屏幕“的像素内容,当然,读取出来的不会包含半透明信息(全部是255)。


2025-05-10 12:49:52
广告
  • 国王的预言师
  • 活跃吧友
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@丿小夕ve @music_fans_i 看图片,这样应该就可以的


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回sdl吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示