Chilli Source 有平台移植指南吗?

Is there a platform porting guide for Chilli Source?

我一直在计划开始将 Chilli Source 移植到 Linux,但还没有找到关于将 Chilli Source 移植到新平台需要做什么的明确信息。

是否有说明如何操作或在哪里查看的指南? - 平台特定实现在代码中的位置 "selected"? - 平台需要实现的最低限度系统是什么?它们必须实现的接口是什么? -如何向项目生成器添加额外的目标? - 什么需要预编译成库,放在哪里?

基本上,以现有平台之一为例的指南会很棒。如果不只是一些关于 git 回购中寻找答案的亮点,我们将受到欢迎。

谢谢!

描述如何将引擎移植到其他平台的完整教程有点超出了这里可以提供的范围,但是我可以提供一个快速概述。

平台后端主要包括:

  • 应用程序的入口点
  • Window创作
  • OpenGL 上下文创建
  • 每个平台特定系统的实现。

Windows 后端就是一个很好的例子:您可以在 Main.cpp 中看到引擎的入口点,在 [=] 中看到 window/context 创建(使用 SFML) 11=].

平台特定系统被声明为抽象的,要求每个平台后端实现自己的版本。所有系统都是通过 Create() 工厂方法创建的,使用平台特定具体系统的创建对用户是隐藏的。 DialogueBoxSystem 就是一个很好的例子。

只有默认系统需要在每个平台上实现 - 那些在 Application::CreateDefaultSystems() 中创建的平台。目前,这需要实施:

  • PlatformSystem
  • Device
  • Screen
  • FileSystem
  • DialogueBoxSystem
  • Keyboard(仅在具有硬件键盘的系统上需要)
  • PointerSystem
  • DeviceButtonSystem
  • TextEntry

Create() 工厂方法应该 return nullptr 在任何未实现该系统的平台上。

最后,您需要为新平台构建 CSBase 库 - 这提供了引擎使用的所有第三方代码:libPng、rapidxml 等。

希望这足以为您指明正确的方向。也值得看看 Fzort 的 CS 分支,他在 linux 上有 运行:https://github.com/fzort/ChilliSource