Ogre中的 plugin 机制

         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 个与上述函数功能相反的函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值