首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有用Oxygene制作的可交叉编译的OpenGL示例?

有没有用Oxygene制作的可交叉编译的OpenGL示例?
EN

Stack Overflow用户
提问于 2013-05-29 14:20:11
回答 3查看 603关注 0票数 2

我们有一个在PC上工作的OpenGL项目(在Wine下的MacOS和Linux上也可以工作),我们想尝试交叉编译到平板电脑上。DelphiXE2/XE4提供了对iOS的支持,但还没有安卓系统,从iOS的实现历史来看,可能需要1-2年的时间。现在我们开始寻找其他的可能性,这将使我们能够保留大部分的Pascal代码库(80k行)。所以这就是Oxygene的问题:

有没有用Oxygene制作的可以在PC/MacOS/iOS/Android上交叉编译的OpenGL应用程序的例子?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-29 21:14:05

AFAIK没有。

即使是low-level cross-platform RTL也没有完成。这将是在以跨平台方式(即使用相同的源代码)访问高级库(如OpenGL )之前必须完成的第一个强制性步骤。

因此,使用Oxygene,您有一个很棒的交叉编译器,但您必须使用每个平台上可用的RTL。

您可以与两个object-pascal编译器进行比较:

带有FreePascal的

  • ,它有built-in OpenGL units,并且已经有几个库-其中最强大/最知名的是GLScene;
  • With SmartMobileStudio,它在现代浏览器上具有built-in WebGL supportcan do amazing things - WebGL是HTML5中OpenGL应用编程接口/概念的翻译。
票数 4
EN

Stack Overflow用户

发布于 2013-05-29 16:17:25

Oxygene不会尝试与Delphi保持源代码兼容。更重要的是,各种Oxygene风格使用的运行时库与Delphi使用的运行时库完全不同。所以你不会找到任何真正的库,它们只有一个源代码,可以在Oxygene和Delphi上编译。

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

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

使用Oxygene,每个平台都是单独定位的。因此,对于Windows,运行时是.net。对于Java,它是JVM;对于Apple平台,您的目标是Cocoa。

所有这一切意味着,你不能期望用Oxygene编写一个GUI应用程序,并让它在多个平台上工作。

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

现在,您可以毫不费力地移植到Oxygene或FPC。但维护单一来源可能意味着更多的努力。这种努力是否值得,尚有争议。从长远来看,你会想要一个代码库的Delphi,FPC,Oxygene,甚至是一些根本不同的东西。但是你不会想让你的代码分散在多种语言上。

票数 4
EN

Stack Overflow用户

发布于 2013-05-29 17:39:37

您可以在Oxygene中编写或拥有OpenGL层,就像在sugar open source project中一样使用mapped types

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

IMHO,当Oxygene不断增长时,我们会找到很多这样的“糖层”,并在任何地方编写一次编译就会更接近:)

编辑:

Using OpenGL with .Net

OpenGL Java Tuturial

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16806810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档