2011-04-07 132 views
0

是否有可能通過resources.cfg與程序的其他部分共享Ogre :: ResourceManager中加載的Ogre3D資源?如果可能的話,用SFML會很好。例如,我知道CEGUI可以自動執行此操作。C++,Ogre3D,SFML,共享資源?

回答

1

Ogre本質上將資源從其文件路徑中抽離出來。這是因爲資源可能不一定來自文件系統(可以通過網絡進行流式傳輸,也可以從壓縮存檔中解壓縮)。所以沒有,沒有破解封裝就無法從Ogre資源獲取文件系統路徑。

您需要擴展任何資源系統SFML(如果有的話,我不熟悉SFML的工作方式),然後將資源數據本身傳遞到該庫中。我發現大多數圖書館都有一些通過文件系統路徑提供數據的方式。如果SFML沒有這個功能,我可能會建議尋找一些更完整的東西。

您提到CEGUI已經這樣做了。這是正確的。 CEGUI/Ogre interop層建立在Ogre的資源處理框架的基礎上來完成這些工作。它向Ogre請求資源,通過Ogre加載它們,然後將數據傳遞給CEGUI。 CEGUI本身從未觸及過文件系統。

0

我認爲你可以調用資源管理器來檢索你想要的任何東西,然後將它提供給SFML。當然,你將不得不編寫代碼將兩者粘合在一起。

+0

我已經看了一下Ogre的資源管理器類。但我似乎無法找到從其中獲取原始路徑的可能性(例如,SFML需要這些路徑)。它只能返回食人魔內部名稱(資源組名稱和內容名稱,但不是原始路徑)。 – blubberbernd 2011-04-08 13:45:30