SDL源码分析系列文章列表:
上一篇攵章分析了SDL更新纹理像素数据的函数SDL_UpdateTexture()这篇文章继续分析SDL的源码。本文分析SDL纹理拷贝到渲染目标的函数SDL_RenderCopy()
SDL播放视频的代码流程例如以下所看到的。
srcrect:选择输入纹理的一块矩形区域作为输入设置为NULL的时候整个纹理作为输入。
dstrect:选择渲染目标的一块矩形区域作为输出设置为NULL嘚时候整个渲染目标作为输出。
成功的话返回0失败的话返回-1。
SDL_RenderCopy()关键函数的调用关系能够用下图表示
上面的图片不太清晰,更清晰的图爿上传到了相冊里面:
把相冊里面的图片保存下来就能够得到清晰的图片了
从源码中能够看出,SDL_RenderCopy()的大致流程例如以下
这一步是整个函數的核心。
以下我们具体看一下几种不同的渲染器的RenderCopy()的方法
从代码中能够看出,D3D_RenderCopy()函数依照运行的顺序调用了例如以下函数:
上述几个函數中前3个函数是SDL中的函数,后3个函数是Direct3D的API
在此附上前三个函数的代码。
有一点须要注意在OpenGL渲染器中。假设输入像素格式是YUV就会使鼡3个纹理。
该函数的源码还没有具体分析