我一直计划开始将Chilli Source移植到Linux,但是还没有找到关于将Chilli Source移植到新平台需要做些什么的明确信息。
是否有指南说明如何操作或在哪里查看? - 平台特定的实施得到"选择"在代码中? - 平台需要实现的最低系统是什么?它们必须实现的接口是什么? - 如何为项目生成器添加额外的目标? - 需要预编译为库以及放置它们的位置?
基本上,可能以现有平台之一作为示例的指南非常棒。如果不仅仅是关于git repo寻找答案的地方的一些亮点将受到欢迎。
谢谢!
答案 0 :(得分:2)
描述如何将引擎移植到其他平台的完整教程有点超出了此处提供的范围,但我可以快速概述。
平台后端基本上包括:
Windows后端就是一个非常好的例子:您可以在Main.cpp
中看到引擎的入口点,在SFMLWindow.cpp
中看到窗口/上下文创建(使用SFML)。
特定于平台的系统被声明为抽象,要求每个平台后端实现它们自己的版本。所有系统都是通过Create()工厂方法创建的,使用平台特定的具体系统创建是对用户隐藏的。一个很好的例子就是DialogueBoxSystem
。
只有默认系统需要在每个平台上实施 - 那些在Application::CreateDefaultSystems()
中创建的系统。目前,这需要实施:
PlatformSystem
Device
Screen
FileSystem
DialogueBoxSystem
Keyboard
(仅在具有硬件键盘的系统上需要)PointerSystem
DeviceButtonSystem
TextEntry
Create()
工厂方法应在任何未实现系统的平台上返回nullptr
。
最后,您需要为新平台构建CSBase库 - 这提供了引擎使用的所有第三方代码:libPng,rapidxml等。
希望这应该足以指出你正确的方向。这也值得查看Fzort在Linux上运行的CS分支:https://github.com/fzort/ChilliSource