描述如何将引擎移植到其他平台的完整教程略微超出了可以在此处提供的范围,但是我可以快速浏览一下。
的平台后端主要包括:
- 的入口点的应用
- 窗口创建
- 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