位置: 编程技术 - 正文

SDL2源代码分析7:显示(SDL_RenderPresent())(srslte源码分析)

编辑:rootadmin

推荐整理分享SDL2源代码分析7:显示(SDL_RenderPresent())(srslte源码分析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sdwebimage源码,sdrsharp源码,sscom源代码,stl源代码剖析,sdr 开源,sdr 开源,sdwebimage源码解析,sdwebimage源码解析,内容如对您有帮助,希望把文章链接给更多的朋友!

=====================================================

SDL源代码分析系列文章列表:

SDL2源代码分析1:初始化(SDL_Init())

SDL2源代码分析2:窗口(SDL_Window)

SDL2源代码分析3:渲染器(SDL_Renderer)

SDL2源代码分析4:纹理(SDL_Texture)

SDL2源代码分析5:更新纹理(SDL_UpdateTexture())

SDL2源代码分析6:复制到渲染器(SDL_RenderCopy())

SDL2源代码分析7:显示(SDL_RenderPresent())

SDL2源代码分析8:视频显示总结

=====================================================

上一篇文章分析了SDL纹理赋值给渲染目标的函数SDL_RenderCopy()。这篇文章分析SDL显示视频最后的一个函数:SDL_RenderPresent()。

SDL2源代码分析7:显示(SDL_RenderPresent())(srslte源码分析)

SDL播放视频的代码流程如下所示。初始化: SDL_Init(): 初始化SDL。 SDL_CreateWindow(): 创建窗口(Window)。 SDL_CreateRenderer(): 基于窗口创建渲染器(Render)。 SDL_CreateTexture(): 创建纹理(Texture)。 循环渲染数据: SDL_UpdateTexture(): 设置纹理的数据。 SDL_RenderCopy(): 纹理复制给渲染器。 SDL_RenderPresent(): 显示。

上篇文章分析了该流程中的第6个函数SDL_RenderCopy()。本文继续分析该流程中的最后一个函数SDL_RenderPresent()。

SDL_RenderPresent()函数简介

SDL使用SDL_RenderPresent()显示画面。SDL_RenderPresent()的原型如下。

参数renderer用于指定渲染器。函数调用关系图

SDL_RenderPresent()关键函数的调用关系可以用下图表示。

上面的图片不太清晰,更清晰的图片上传到了相册里面:

渲染器中对应RenderPresent()的函数是D3D_RenderPresent(),它的源代码如下所示(位于renderdirect3dSDL_render_d3d.c)。

从代码中可以看出,该函数调用了2个最关键Direct3D的API:IDirect3DDevice9_EndScene():结束一个场景。IDirect3DDevice9_Present():显示。2.OpenGL

OpenGL渲染器中对应RenderPresent()的函数是GL_RenderPresent(),它的源代码如下所示(位于renderopenglSDL_render_gl.c)。

代码比较简单,只有两行。关键的显示函数位于SDL_GL_SwapWindow()函数中。下面看一下SDL_GL_SwapWindow()的代码(位于videoSDL_video.c。感觉这里调用关系稍微有点乱…)。从上述代码中可以看出,SDL_GL_SwapWindow()调用了SDL_VideoDevice的GL_SwapWindow()函数。我们看一下在“Windows视频驱动”的情况下,该函数的代码。在“Windows视频驱动”的情况下,调用GL_SwapWindow()实际上是调用了WIN_GL_SwapWindow()函数。看一下WIN_GL_SwapWindow()函数的代码(位于videowindowsSDL_windowsopengl.c)。

代码中调用了简单的一个函数SwapBuffers(),完成了显示功能。

3.Software

Software渲染器中对应RenderPresent()的函数是SW_RenderPresent(),它的源代码如下所示(位于rendersoftwareSDL_render_sw.c)。

从代码中可以看出,SW_RenderPresent()调用了一个函数SDL_UpdateWindowSurface()。我们看一下SDL_UpdateWindowSurface()的代码(位于videoSDL_video.c)。

SDL_UpdateWindowSurface()又调用了另一个函数SDL_UpdateWindowSurfaceRects()。继续看SDL_UpdateWindowSurfaceRects()的代码。

SDL_UpdateWindowSurfaceRects()调用了SDL_VideoDevice的UpdateWindowFramebuffer()函数。在“Windows视频驱动”的情况下,相当于调用了WIN_UpdateWindowFramebuffer()。我们看一下该函数的代码(位于videowindowsSDL_windowsframebuffer.c)

经过一系列的寻找之后,终于找到了Software渲染器显示视频的“源头”:BitBlt()函数。

在Xcode中使用GLUT开发OpenGL应用程序 Xcode是MacOSX中自带的开发环境。GLUT提供了跨越平台的OpenGL实用工具。本文讲述如何在Xcode3.2中使用GLUT来开发OpenGL应用程序。在Xcode的启动面板中,选Create

Qt环境下利用OpenGL显示三维模型 最近在做一个利用Qt开发的小程序,其中一项功能是读取三维点云数据式(如PLY、OBJ)数据,并利用OpenGL显示在程序窗口中。由于博主对OpenGL不太了解,

Ubuntu下QtOpenGL无法正常使用GLU库的解决方法 本文来自

标签: srslte源码分析

本文链接地址:https://www.jiuchutong.com/biancheng/373126.html 转载请保留说明!

上一篇:codeblocks配置GLUT(codeblocks配置文件在哪)

下一篇:OpenGL学习05_点画模式(点画多边形)(opengl中点画线算法)

  • 一般纳税人的现金收入
  • 个体户收现金可以开发票吗
  • 培训费计入办公会计科目吗?
  • 小规模发票单张限额
  • 获取发票信息异常
  • 可供出售金融资产和长期股权投资
  • 自然人转让股权给自己的公司
  • 现金折让怎么做会计分录
  • 出口报关金额要考虑银行手续费吗
  • 投资损益表该如何填列
  • 办公场所转租赁需要交哪些税费
  • 开了票后才收到工程款怎么做账?
  • 开具发票只有票号可以吗?
  • 土地增值税预缴税率
  • 手撕票验旧是什么意思
  • 旅游景区税收标准
  • 生产企业销售原材料所取得的收入属于( )
  • 银行存款二级明细科目有哪些
  • 工资不在本单位拿取的能加入会员吗
  • 土地使用税每个月都要计提吗
  • 单位定期存款支取
  • 违约金收税吗
  • 收取施工队管理费
  • 股东投入的资金可以计入资本公积吗
  • Win11系统怎么更换桌面壁纸
  • 呆账催讨原则是谁提出的
  • 项目单位自筹资金
  • 工程决算超预算起诉
  • 旅行社开的发票怎么入账
  • 新会计准则职工薪酬解读
  • php7 数组
  • linux操作系统安装包
  • 事业单位自营
  • 当月购进固定资产
  • php正则表达式匹配字符串
  • 关于php文件的自动播放
  • winform 文件上传
  • 前端开发配置
  • Android ImageView使用详解(系列教程三)
  • 劳务派遣开具发票
  • 帝国cms更换编辑器
  • 工资的补贴是多少
  • 年终奖怎么计算个税
  • 企业所得税成本核定
  • 保单的增值税发票能抵税吗
  • 电子口岸无纸化报关
  • 废料收入是什么会计分录
  • 积分获取和消费的关系
  • 企业购买了数千亿资产
  • 应税销售额什么意思
  • 月末假退月初假领
  • 非货币性资产交换换入资产的入账价值
  • 结转损益结转了两次咋办
  • 库存现金存入银行是什么凭证
  • 5000以下固定资产一次性计提折旧政策
  • 银行日记账如何制做
  • 新手学会计怎么学
  • 如何审核原始凭证的正确性
  • MySQL之Field‘***’doesn’t have a default value错误解决办法
  • linux如何用
  • linux命令合集
  • linux安装的命令是啥
  • ubuntu20.04安装配置
  • windows图标变化
  • jquery和原生js性能
  • vue如何用
  • pythonista pygame
  • Shell脚本中不同进制数据转换的例子(二进制、八进制、十六进制、base64)
  • js实现返回顶部
  • 浅谈建筑地基基础加固施工技术亲
  • android完整开源项目
  • 国家税务总局网站官网福建税务局
  • 个人所得税怎么换手机号绑定
  • 保障性住房是否可以买卖
  • 开票税额超出1万怎么办
  • 个人所得税怎么退税
  • 关于出口退税的问题
  • 组织创新包括哪些类型
  • 税务局审计整改的信息
  • 宁波无犯罪证明能当场拿到吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设