Ogre中的 plugin 机制

来源:互联网 发布:通达信资金博弈源码 编辑:程序博客网 时间:2024/04/20 09:37

         Ogre把包括RenderSystem, SceneManager, CgProgramManager, ParticleSystem在内的很多东西都设计成了Plugin,其好处不言而喻。

        

         Plugin中有install(), uninstall(), initialize(), shutdown()getName()五个纯虚函数。其中子类对象(或者负责实例化对象的Factory)的创建是通过install()完成的,而大部分子类的install()uninstall()并没有做什么工作。

 

    Root初始化系统时有4个函数和Plugin有关:

 

 

 

    在Root构造函数的最后调用了函数4,并逐一用配置文件中的每个PluginName调用函数3

 

Ogre中函数3如下:

 

 

    其中通过DynLibManager将相应的动态库加载进来。之后以D3D9Plugin为例看看

pFunc()的调用:

 

 

  

  

    上面调用了函数2,而2中又有:

 

 

 至此,完成相应Plugin的构建工作.

 至于函数1,是在:

   

 

 中第一次窗口初始化之后进行的。

 

     同样,在最后有4个与上述函数功能相反的函数。

原创粉丝点击