OGRE源码分析---Resource 板块分析

本文详细介绍了OGRE引擎的资源管理模块,包括资源组织、管理、状态、调度算法和多线程处理。Resource、ResourceManager和ResourceGroupManager是核心类,负责不同类型资源的创建、加载、卸载和内存管理。资源的状态包括Undefined、Declared、Unloaded和Loaded,通过不同的函数进行状态转换。此外,还讨论了资源的生命周期和手动加载器。
摘要由CSDN通过智能技术生成

引擎名称:OGRE 版本:1.11.5
模块名称:资源模块
2.
游戏资源管理主要做什么?
·资源组织
根据各种资源的特性和使用的方式等,设计资源数据的内存组织方式
·资源管理
统一的资源处理方法,如:内存分配、资源状态管理、加载和卸载操作、资源调度算法、以及多线程管理等
游戏资源管理目的:通过有效地组织和管理各类资源,能在合适的时候、快速地提供给游戏程序。

游戏资源管理的种类
文件管理:游戏的资源是以文件的形式存储的
·包括文件的加载和卸载,文件解析,格式转换,打包和传输资源文件等。
内存管理:使用资源时需要加载到内存
·内存分配
·访问保证
·内存释放

状态管理:资源当前的状态,如已定义、已加载、已移除等
资源调度算法:在有限的内存中,为使用资源的程序提供最好的方案
·优先队列
·LRU
多线程处理:资源管理的并行处理

类和类关系描述

3.1主要类的关系
在这里插入图片描述
简单来说,他们之间的关系

Resource、ResourceManager、ResourceGroupManager这三个类是OGRE引擎进行资源管理的三个核心类,Ogre把资源分为“Font”、“GpuProgram”、“Material”、“Mesh”、“Skeleton”和“Texture”等类型,它们分别用Font、GpuProgram、Material、Mesh、Skeleton、Texture等同名的类对象来描述,这些类都直接从Resource基类派生。Ogre的Resource对象都由ResourceManager来管理。不同类型资源的管理,分别由不同的资源管理器来实现,比如以上各种类型资源都对应着各自的资源管理器,FontManager、GpuProgramManager、MaterialManager、MeshManager、SkeletonManager、TextureManager等,它们都以ResourceManager作为自已的基类。各种类型资源类对象的创建、Load/Unload、销毁等操作,都由相应的ResourceManager来完成。但Ogre的对资源的管理还不仅限于此。为了更方便资源的使用,提高资源的使用的效率。Ogre中有一个被称为ResourceGroupManager的类,其中内嵌了一个ResourceGroup的结构定义,很明显定义ResourceGroup只是为了ResourceGroupManager内部使用。在需要进行3D场景展示的一般应用中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值