c - SDL_CreateRenderer() 与 SDL_CreateSoftwareRenderer()
问题描述
使用该标志创建的渲染器的行为是否与使用该标志SDL_CreateSoftwareRenderer()
创建的渲染器有任何不同?SDL_CreateRenderer()
SDL_RENDERER_SOFTWARE
解决方案
这两者的运作方式,甚至它们的预期用途都存在差异。SDL_CreateSoftwareRenderer
创建到给定表面的软件渲染器绘图。这个表面不需要是窗口表面,你可以绘制到后台缓冲区,将其转换为纹理并将结果提供给 d3d 或 opengl 渲染器。
SDL_CreateRenderer
为给定窗口创建渲染器,这意味着它应该绘制到该窗口 - 通过一些检查,如 opengl 或 vulkan 需要使用特定标志创建窗口。它遍历可用渲染后端的列表,并尝试找到flags
最适合您的渲染后端。最终,如果它决定使用软件渲染器(不支持其他任何东西或明确请求软件,尽管有不止一种方法可以做到这一点 - 请参阅最后一段)它或多或少地调用SDL_CreateSoftwareRenderer(SDL_GetWindowSurface(window))
(不完全如此,但如果您将跟踪代码,它是相同的)。
flags
在SDL_CreateRenderer
不是绝对的;如果提示说要使用 direct3d 或 opengl,您SDL_RENDERER_SOFTWARE
将被忽略。SDL_CreateSoftwareRenderer
永远是软件。
推荐阅读
- sql-server - 动态 SQL (T-SQL) 使用存储过程 (sp_executesql @sql) 插入到(动态表名)
- javascript - 如何在购物车会话中使用 ajax - node js
- highcharts - 未显示系列最后一点的 Highcharts 数据标签
- jquery - Bootstrap 不显示工具提示 jQuery 错误
- python - 将 json 读入 pandas 数据帧时允许使用哪些类型规范?
- javascript - 如果我在一个对象中有一个数组并且该对象在一个大数组中,我该如何更新 React Native 状态?
- protractor - 期望失败时如何将茉莉花配置为注销消息
- python - 如何彻底清除画布
- java - 初始化新的 RecyclerView 适配器是异步调用吗?
- graphql - 带有 Ghost CMS 的 Gatsby.js:如何查询包含当前帖子相同标签的帖子列表