目标:将一个顺序载入的系统变成分步载入的系统。
动机:
也许你会说背景线程 可以达到更好的效果, 但是我想说的是在一些情况下是无法使用多线程的。
比如装载Shader程序,这些程序都需要使用CPU进行本地编译。
这时支持分步载入的系统就能根据情况来分散载入任务,平滑资源载入的过程,可以让系统充分利用时间来使前台功能看起来平滑。
另外一个理由是性能,基于多线程的系统总是会为各种锁支付额外的开销,对于Ogre而言,这2种工作模式的性能差异可以达到30%以上。
注意,这个改造方案和多线程工作模式不冲突。
步骤:
1、确保存在 isLoaded() 或类似方法,因为分步载入的结构和异步结构一致.
2、确保存在一个用于记录所有的加载任务的数据成员,如果没有就定义一个.
3、添加一个游标变量记录当前正在处理哪个子对象,可以是一个对象引用、上值、索引、迭代器等.
4、添加一个用于步进载入的函数 bool loadNext(), 在该函数中发起"当前正在处理的子对象"的加载, 并将游标指向下一个对象.
5、添加一个用于直接载入的函数 void loadDirectly(), 该函数使用 基于 while( loadNext()) 的结构来实现自己.
6、在创建母对象的接口上添加一个 bool manualLoad 变量,用于确定是否使用步进加载,或使用原有的直接加载方式.
范例:(注意下面的 + expand / sourceview / plaincopy to clipboard / print / ?)
分享到:
相关推荐
2. **分步编程:** 针对每个关键环节进行单独编程,例如词法分析器、语法分析器等。 3. **逐步集成:** 完成各部分编程后,将它们集成到一起形成完整的编译器。 #### 三、实践报告的规范与要求 **报告内容:** - *...
### 两位数乘一位数教学设计知识点解析 #### 一、教学目标与核心知识点 **教学目标:** 1. **理解意义与方法:**通过实际情境帮助学生理解两位数乘一位数口算与笔算的意义及其计算方法。 2. **培养能力:**提升...
- 分步解决问题(如:学校买来 2000 本练习本的分配问题) - 画图解决问题(如:正方形棋盘的面积计算) - 分析解决问题(如:一台磨面机每小时磨面粉的数量计算) 4. 数学应用题中的模型: - 比较模型(如:两...
- **闪存写入:** 分步进行,包括编程和验证过程。 - **闪存擦除:** 支持按页擦除。 - **DMA闪存写:** 提高写入效率,无需CPU干预。 #### 六、I/O端口与外设 - **通用I/O:** 提供多个可配置的I/O引脚,支持中断...
播放1.CBA提供了从扩展弹出界面设置分步代码注入的能力。2.在浏览网页时记录用户交互(填写表单、点击按钮、超链接和用于DOM元素路径计算的智能算法)。3.将项目保存在浏览器的本地存储中。4.分步代码注入。5.导入、...
- **总体设计与分步实施:** 二期作为嘉兴阳光广场总体设计的一部分,采用总体设计、分阶段实施的原则。 - **功能独立与可扩展性:** 完成后可独立实现各项功能,并支持与一期等其他系统的无缝连接和平滑升级,确保...
适用于Windows Server的Docker引擎演练分步演练以开始使用适用于Windows Server的Docker Engine
C++是一种强大的、通用的编程语言,被广泛应用于系统软件、应用软件、游戏开发、设备驱动程序等。在面试中,C++相关的知识点通常涵盖了语言基础、标准库、内存管理、模板、异常处理、STL(Standard Template Library...
【标题与描述解析】: 该文件为"中外基础教育改革与发展的练习答案(综合练习一).pdf",主要涉及的是基础教育领域的改革与发展,包括国内外的教育政策、目标、改革措施、教育理念等内容。 【知识点详解】: 1. **基础...
- 巩固拓展:小组合作完成阅读理解,个体书写练习,提升语言运用能力。 - 作业布置:阅读单词并模仿课本上的对话进行表演。 本教案的设计充分考虑了小学阶段学生的认知特点,通过多种教学手段使学生在实践中学习...
《C语言设备标准管理系统》是针对学生课程设计的一份详细说明文档,旨在通过设计和实现一个设备管理系统,提升学生的C语言编程能力和程序设计技巧。该系统涵盖了设备信息的管理,包括设备的添加、删除、查询、修改和...
- **完形训练模式**:通过让学生完成整个知识框架,提升理解和应用能力。 - **交互式教学模式**:鼓励师生和生生间的互动交流,促进深度学习。 - **合作学习模式**:学生以小组形式共同解决问题,培养团队协作和...
它需要一些一般的编程知识和JavaScript基础。 它着重于将工具连接在一起,并为您提供每种工具最简单的示例。 您可以将本教程视为一种从头开始编写自己的样板的方法。 由于本教程的目的是组装各种工具,因此,我不会...
您可以在找到包含代码示例的分步文件系统过滤器驱动程序教程,以及有关如何安装/卸载和启动/停止该驱动程序的。 执照 根据MIT许可获得许可。 :copyright:Apriorit。 如何建造 要构建过滤器驱动程序解决方案,您需要...
- 排布分步实施计划,定期监控进度。 - 亲自负责关键工作(如光缆过路),通过政府渠道解决问题。 - **施工策略改变:** - 改变传统的集中人力突击施工模式,采用少量精干团队施工的方式。 - 结果:提高了施工...
这份名为"图纸目录.doc"的文档包含了多种类型的施工图纸,涵盖了从项目规划到施工实施的各个阶段,反映了工程的全貌。以下是该目录中涉及的一些关键知识点: 1. **施工总平面布置图** (SX-018-投-01):这是项目初期...
访问[报表页面-可选](使用github.io选项) 建造 代码质量 [Git检查器](使用github.io选项) 资料夹结构 文件夹 描述 1_Requirements 详细说明需求和研究的文件 2_Design 指定设计细节的文件 3_Implementation ...
- 看懂图片:教育学生能够理解图片中的场景和情节,这是基本的观察能力训练。 - 讲故事技巧:培养学生的想象力,通过合理联想将图片转化为完整的故事,锻炼口头表达能力。 - 倾听与交流:教导学生在交流过程中...
- 基本应用软件(Basic Applications):通用型软件,使用户具备基本的计算机操作能力,如浏览器、文字处理器、电子表格等。 - 专业应用软件(Specialized Applications):针对特定领域或职业的专用软件,例如...
本分步指南分为两个部分。 第一部分探讨了有关PHP 7的模块化设计技术的所有基础知识。后一部分演示了网上商店应用程序各个模块的实际开发。 ###软硬件: [MySQL 5.6]( ) [PHP 7]( ) [VirtualBox]( ) ##...