SDL中文论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3593|回复: 0
打印 上一主题 下一主题

[SDL] SDL_RenderCopyEx

[复制链接]

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
跳转到指定楼层
楼主
发表于 2018-1-15 15:17:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ancientcc 于 2018-1-15 15:20 编辑
  1. int SDL_RenderCopyEx(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * srcrect, const SDL_Rect * dstrect, const double angle, const SDL_Point *center, const SDL_RendererFlip flip)
复制代码
复制部分参考SDL_RenderCopy,这里只说旋转,即angle、center参数。

左侧是原图,右侧是顺时针旋转90度后图像。底下两条语句是旋转时使用的代码。

把第二条语句中的角度从90换为-90,则结果是逆时针旋转90度。正如SDL_RenderCopyEx在帮助中写的,angle正数时表示顺时针,负数时表示逆时针。

和一些人想的不一样,center参数是和dest纹理相关,不是和src。

一直到现在,我还没彻底弄明白SDL_RenderCopyEx如何工作,以下是几个结论。
  • 旋转前后,两个纹理的像素是一一对应,因而不会存在旋转后图像失真,也不会存在被削去。
  • SDL只有一份顶点着色器代码,即GLES2_VertexSrc_Default_,或旋转或不旋转都在用它,因而和不旋转相比,旋转不会增加cpu、gpu开销。
  • 如何填写dstrect参数?我的做法是先确定width、height,然后看效果,再决定如何填x、y。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|丽谷软件|libsdl.cn

GMT+8, 2025-5-2 04:04 , Processed in 0.056599 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表