SDL中文论坛
标题:
SDL_RenderCopyEx
[打印本页]
作者:
ancientcc
时间:
2018-1-15 15:17
标题:
SDL_RenderCopyEx
本帖最后由 ancientcc 于 2018-1-15 15:20 编辑
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参数。
(, 下载次数: 2187)
上传
点击文件名下载附件
左侧是原图,右侧是顺时针旋转90度后图像。底下两条语句是旋转时使用的代码。
把第二条语句中的角度从90换为-90,则结果是逆时针旋转90度。正如SDL_RenderCopyEx在帮助中写的,angle正数时表示顺时针,负数时表示逆时针。
和一些人想的不一样,center参数是和dest纹理相关,不是和src。
一直到现在,我还没彻底弄明白SDL_RenderCopyEx如何工作,以下是几个结论。
旋转前后,两个纹理的像素是一一对应,因而不会存在旋转后图像失真,也不会存在被削去。
SDL只有一份顶点着色器代码,即GLES2_VertexSrc_Default_,或旋转或不旋转都在用它,因而和不旋转相比,旋转不会增加cpu、gpu开销。
如何填写dstrect参数?我的做法是先确定width、height,然后看效果,再决定如何填x、y。
欢迎光临 SDL中文论坛 (http://www.libsdl.cn/bbs/)
Powered by Discuz! X3.3