2015-04-28 35 views
-4

我一直计划开始将Chilli Source移植到Linux上,但还没有找到关于Chilli Source移植到新平台需要做什么的清晰信息。Chilli Source有平台移植指南吗?

有没有指导它解释如何做或在哪里看? - 代码中哪些平台特定的实现被“选择”? - 平台需要实现的最低系统以及它们必须实现的接口是什么? - 如何将额外的目标添加到项目生成器? - 需要预先编译为一个库以及放置它们的位置?

基本上,可能以现有平台之一作为示例的指南将非常棒。如果不是只是一些亮点,在git回购在哪里寻找答案将受到欢迎。

谢谢!

回答

2

描述如何将引擎移植到其他平台的完整教程略微超出了可以在此处提供的范围,但是我可以快速浏览一下。

的平台后端主要包括:

  • 的入口点的应用
  • 窗口创建
  • 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