摘要: Ogre源碼剖析3–可擴(kuò)展性&插件機(jī)制
Ogre是一個(gè)跨操作系統(tǒng)平臺(tái)的開源3D引擎,既支持DirectX,也支持使用OpenGL,支持可替換的場景管理算法(BSP, OCT)。為Ogre提供這些靈活可擴(kuò)展性的基礎(chǔ)之一就是其面向插件的設(shè)計(jì)。
很多常用的軟件大都提供了插件接口,用以擴(kuò)展應(yīng)用程序設(shè)計(jì)者最初未想到的功能,比較常見的譬如PhotoShop的濾鏡,After Effect中的各種插件(最有名的比如shine),3dMax的插件譬如渲染器,魔獸世界的輔助插件等等。
通常,插件本身通常也需要實(shí)現(xiàn)主應(yīng)用程序所需要的必要接口,從而使得插件可以被應(yīng)用程序加載執(zhí)行。此外,插件的實(shí)現(xiàn)也需要由主應(yīng)用程序提供一些接口api,通過這些接口,插件可以對(duì)主應(yīng)用程序的功能進(jìn)行調(diào)用。
插件可以是動(dòng)態(tài)鏈接庫(win32平臺(tái)上為DLL文件),也可以是以腳本的形式提供的,比如魔獸世界中的插件就是使用lua編寫的,插件也可能是某種應(yīng)用程序自定義的文件,只要該應(yīng)用程序提供了創(chuàng)建該類文件的方法并實(shí)現(xiàn)解析、執(zhí)
閱讀全文