描述如何將引擎移植到其他平臺的完整教程略微超出了可以在此處提供的範圍,但是我可以快速瀏覽一下。
的平臺後端主要包括:
- 的入口點的應用
- 窗口創建
- OpenGL上下文創建
- 每個特定平臺的系統的實現。
在Windows後臺就是一個不錯的例子:你可以看到入口點到發動機Main.cpp
和窗口/背景創作SFMLWindow.cpp
(使用SFML)。
平臺特定的系統被聲明爲抽象的,要求每個平臺後端都實現它們自己的版本。所有系統都是通過Create()工廠方法創建的,使用創建特定於平臺的具體系統對用戶是隱藏的。一個很好的例子是DialogueBoxSystem
。
只有默認系統需要在每個平臺上執行 - 在Application::CreateDefaultSystems()
中創建的系統。目前,這需要實現的:
PlatformSystem
Device
Screen
FileSystem
DialogueBoxSystem
Keyboard
(只需要在其上有硬件鍵盤的系統)
PointerSystem
DeviceButtonSystem
TextEntry
的Create()
工廠方法應該不實現系統在任何平臺上返回nullptr
。
最後,你需要建立CSBase庫的新平臺 - 這提供了所有的發動機使用的第三方代碼:的libpng,rapidxml等
希望這應該足夠點你在正確的方向。還有一點值得一提,他已經在Linux上運行了Fzort的CS分支:https://github.com/fzort/ChilliSource