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
清源游民 阅读(1218)
评论(0) 编辑 收藏 引用 所属分类:
OGRE