您的位置:首页 > 其它

宝开框架研究——资源管理

2014-02-28 10:37 225 查看
  宝开框架通过PakInterface类管理和读取资源,该类继承自PakInterfaceBase。可以从PakInterfaceBase类派生自己的资源管理类。

  PakInterface类类似单例模式。但不是严格的单例模式,还是可以自己new一个,但最好不要这样做。因为这个框架比较早了,估计那时候还没有这么相对成熟的设计模式可用。

  PakInterface类可以直接读取文件也可以先加入资源包再从资源包读取。使用资源包先调用函数PakInterface::AddPakFile()添加资源包,然后就可以像读取普通文件一样读取包内的文件。

  PakInterface类有两个重要变量mPakCollectionList 和mPakRecordMap 。mPakCollectionList 存储资源包在内存里的地址,是一个链表。mPakRecordMap 存储资源包内的文件数据,包括文件名,地址,大小等信息。

  使用PakInterface::AddPakFile()导入资源包后,会直接将整个包读取到内存,然后会一直贮存在内存当中,每次需要读资源包中文件的时候直接从内存中读取,不需要再重新从硬盘里读取。

  在项目文件里好像没有看到有释放资源包内存的代码,不知道是我没找到还是忘写了(商业公司应该不会吧)。

  资源包没有进行压缩,仅仅是简单的把各个文件间连接起来。源码里带了打包工具PopPak.exe。

  PakInterface类没有实现添加资源目录的功能,就是添加目录后,直接输入文件名,不需要带路径。这个功能还是挺方便的,编写资源目录脚本之类时挺方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: