在前面我们可以看到闪屏的图片,已经分析了闪屏下半部的菜单显示,它显示的菜单资源是来自python代码,采用这种方式来实现,就可以不修改C代码,就可以修改菜单的组成。要实现这样的功能,是一个复杂的过程,如果你想把这个功能集成到你的软件里,就需要看看本文,可以参考blender是怎么样实现的。当然,本文只是一个引子,介绍了大体的研究方向,如需要深入地研究,还得自己去研究blender的源码,才能偷一些blender代码到自己的工程里,这样的开发方式肯定快不少,至少比自己没有方向地研究要快上一大捷,毕竟开源这位“老师”是一个强大的外援。
本文还是继续前一文的python脚本wm.py,它是定义菜单的显示内容和操作动作。前面分析怎么样把这个菜单进行显示,现在这里分析它是怎么样加载到内存里,以便显示出来。从前面分析可知,它是把菜单资源保存一个HASH表里,然后从里面找出来,代码如下:
代码里用menutypes_hash来表示保存HASH变量,使用WM_menutype_find函数来找到对应的菜单资源。现在我们就会问怎么样把菜单资