Blender文件读取分析

blender 开源3d模型创作软件,基于2.7.8a版本分析blender文件(blender自己产生的文件)读取流程进行分析。

blender文件分析流程,没有画图了

wm_open_mainfile_exec 读取文件入口(这里其实在启动的时候将对应操作已经注册到了对应件操作中去了)。

wm_file_read_opwrap开始读取文件中信息。整个流程基于此函数操作。

WM_file_read 读取文件类容。

     WM_cursor_wait 设置鼠标为等待形状

      wm_read_exotic 读取文件是否为blender 格式

      wm_window_match_init清除掉屏幕处理事件,

            BKE_blendfile_read 开始读取文件,

           blo_openblenderfile -> filedata_new

           blo_decode_and_check->decode_blender_header 读取文件头。

         read_file_dna->blo_firstbhead ->get_bhead(这里读取一个bhead8或者bhead4),解析数据类型,并读取整个文件长度,数据在bhead[1]处,并且将头加入到fd->listbase,以供后面使用。

 

第二部分数据拆分

DNA_sdna_from_data 开始从读取的buffer 中开始拆分。传入data通过指针指定并进行位移。

init_structDNA DNA转换

 sdna->nr_names 对应名字个数,抽取的代码中变量名的个数

sdna->names 变量名,貌似有几千个

sdna->nr_types 数据类型?

sdna->nr_structs结构体个数,617个

sdna->structs[nr] 结构体,sp[1] 对应元素个数,结构由两个部分组成,即变量类型+变量名组合。

第三部分,比较新旧结构体变换。

DNA_struct_get_compareflags

blo_read_file_internal 这个正在分析中。。。。。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值