OSG第二代文件序列化存储分析

本文详述了OSG第二代文件序列化存储的工作原理,从节点写入文件的流程入手,分析了文件格式判断、选项设置、数据写入等步骤。重点探讨了文本、XML和二进制格式的处理差异,以及如何通过扩展wrapper支持自定义对象的读写,还提及了文件扩展名的限制和加密存储的可能性。
摘要由CSDN通过智能技术生成
花了两天时间仔细研究了一下array贡献的第二代文件序列化存储,收益颇多。今后将得益于它的很强的可扩展性。通过自身的体验,感觉应该还有很多初学者可能需要花费几个小时才能看透,所以特将自己分析的流程发上来,以加快想搞明白其流程的初学者的学习速度。这两天身体状况不太好,两眼通红,眼睛发涩,所以在写的过程中难免有些拼写错误什么的,流程的分析也难免有纰漏或不妥,还请高手指正。

我们以将节点写入文件为例,节点读取与此相同,看看究竟是如何将节点写入文件的,我们从文件读写插件的最顶层入口函数来看,即
virtual WriteResult writeNode( const osg::Node& node, const std::string& fileName, const Options* options ) const
因为osg第二代文件格式读写插件同时支持文本、二进制以及XML格式的文件,所以,在写文件前要确定具体要写入什么文件,读写不同的文件格式需要用到的序列化器不同,文件打开方式也不同,
进入writeNode后会调用Options* prepareWriting( WriteResult& result, const std::string& fileName, std::ios:
:penmode& mode, const Options*
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值