终于把文件打包弄好了
这两天做了个基于zlib的文件打包系统
基本思想就是:
1. 使用FileMapping载入zip包
2. 在zip包中定位指定的文件
3. 创建与该文件大小相同的FileMapping
4. 将文件内容解压到FileMapping中
5. 文件操作一致于tl_PackageFile
还好之前就专门写有FileSystem统一文件处理
不过在加入Dracula库时还是发现了一些问题
因为使用到一些第三方库
当库依赖File IO操作时(open / close / seek / read / write ...)
通常有两种处理方式:
1. 需要实现一堆CallBack的IO函数
2. 无视IO,直接要求传入raw data
因为各库的需求不一
定制要CallBack标准也不尽相同
导致写了些类似却又不同的代码
如果大家都以同一的标准来定制
例如就以FILE为标准
就方便了使用者了
这些库有:ogg、unzip、devil、cegui和tinyxml
基本思想就是:
1. 使用FileMapping载入zip包
2. 在zip包中定位指定的文件
3. 创建与该文件大小相同的FileMapping
4. 将文件内容解压到FileMapping中
5. 文件操作一致于tl_PackageFile
还好之前就专门写有FileSystem统一文件处理
不过在加入Dracula库时还是发现了一些问题
因为使用到一些第三方库
当库依赖File IO操作时(open / close / seek / read / write ...)
通常有两种处理方式:
1. 需要实现一堆CallBack的IO函数
2. 无视IO,直接要求传入raw data
因为各库的需求不一
定制要CallBack标准也不尽相同
导致写了些类似却又不同的代码
如果大家都以同一的标准来定制
例如就以FILE为标准
就方便了使用者了
这些库有:ogg、unzip、devil、cegui和tinyxml