Plugins.cfg

Ogre的许多功能是以插件的形式提供的.Ogre提供的以Plugin_开头的许多.DLL文件都是所谓的插件。
Plugins.cfg指定了插件的路径和插件文件名, 它们可以放在其它文件夹里,但必须在本文件里指定路径。

在 windows 平台插件的装入过程如下:
Root::()
{
   if(!pluginFileName.empty())
   loadPlugins(pluginFileName);

――――――>
void Root::loadPlugins(const String& pluginsfile)
{
   ConfigFile cfg;
   cfg.load(pluginsfile);
    ...........................
   // 解析文件,处理后将目录与文件名联接
  for(;;)
   loadPlugin(plugindir + (*it))

} ――――――>

Root::loadplugin(const string&  pluginName)
{
   DyLibmanager::getsinleton.load(pluginName);
}
――――――>

DynLibManager::load(const string& filename)

{
        DynLib* pLib=new DynLib(filename);
        pLib->load();
}

――――――>

void DynLib::load()

{
      m_hInst=(DYNLIB_HANDLE)DYNLIB_LOAD(name.cstr());
}

在 windows 平台下有如下定义:

#define  DYNLIB_LOAD(a)     LoadLibrary(a)

到此, x.dll 插件被加载到内存中,可以使用插件的功能了^_^
以下为一个典型的 Plugins.cfg 文件的内容:

# Defines plugins to load
# Define plugin folder
PluginFolder=.
# Define plugins

Plugin=RenderSystem_Direct3D9
Plugin=RenderSystem_GL
Plugin=Plugin_ParticleFX
Plugin=Plugin_BSPSceneManager
Plugin=Plugin_OctreeSceneManager
Plugin=Plugin_CgProgramManager
Plugins.cfg 文件内容相当直观,不再赘述。

posted on 2007-03-02 17:31 清源游民 阅读(1029) 评论(0)  编辑 收藏 引用 所属分类: OGRE

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

留言簿(35)

随笔分类(78)

随笔档案(74)

文章档案(5)

搜索

  •  

最新评论

阅读排行榜

评论排行榜