有交叉编译的OpenGL的例子用氧



我们有一个为PC制作的工作OpenGL项目(在MacOS和Linux下也可以工作),我们想尝试交叉编译到平板电脑。Delphi XE2/XE4提供了iOS支持,但还没有Android,从iOS的实现历史来看,它可能需要1-2年的时间。现在我们开始寻找其他的可能性,这将允许我们保留大部分Pascal代码库(80k行)。这是关于氧的问题:

是否有OpenGL应用程序的例子,用氧可以交叉编译工作在PC/MacOS/iOS/Android上?

如果没有,还有什么替代方案(除了拉撒路)?

恐怕没有。

甚至底层的Sugar跨平台RTL也没有完成。这将是在以跨平台方式(即使用相同的源代码)访问更高级别库(如OpenGL)之前必须完成的第一步。

对于Oxygene,你有一个很好的交叉编译器,但是你必须使用每个平台上可用的RTL。

你可以比较两个object-pascal编译器:

  • 使用FreePascal,它内置了OpenGL单元,并且已经了几个库 -其中最强大/已知的是GLScene;
  • 使用SmartMobileStudio,它内置WebGL支持,可以在现代浏览器上做惊人的事情- WebGL是HTML5中OpenGL API/概念的翻译。

Oxygene不试图与Delphi源代码兼容。更重要的是,不同的Oxygene版本所使用的运行时库与Delphi所使用的运行时库完全不同。因此,你不会发现任何严肃的库有单一的源代码,可以在Oxygene和Delphi上编译。


RemObjects在不同平台上开发oxygen的方式非常有趣,与Embarcadero在Delphi上采用的方法完全不同。

使用Delphi的目标是您可以为所有平台进行单一源开发。这是通过FireMonkey框架实现的,它为所有平台提供了一个通用的接口。显然,你需要改变应用程序的一些元素来解释设备的差异。

在Oxygene中,每个平台都是单独针对的。对于Windows,运行时是。net。对于Java,它是JVM,对于Apple平台,你的目标是Cocoa。

所有这些都意味着你不能指望在Oxygene中编写GUI应用程序并使其在多个平台上运行。

所以你不仅可以在Delphi和Oxygene之间单一源你的应用程序,你不能轻易地单一源多个Oxygene目标。


现在,你可能可以移植到氧或FPC没有太大的麻烦。但是维持单一的来源可能意味着更多的努力。这种努力是否值得值得商榷。从长远来看,您将需要Delphi、FPC、Oxygene或甚至完全不同的代码库之一。但是你不希望你的代码分散在多种语言中。

您可以在oxygen中使用映射类型编写或拥有OpenGL层,就像在sugar开源项目中使用的那样。

听起来很酷。在你的代码中,你只需要使用一个在编译过程中直接映射到底层平台类方法的类,而不需要该层的开销。

恕我直言,当氧增长时,我们会发现很多这样的"糖"层,一旦编译,任何地方都会更接近:)

编辑:


使用。net使用OpenGL
OpenGL Java教程

相关内容

  • 没有找到相关文章

最新更新