在Win/Linux/MacOSX/Android/IOS上寻找用于跨平台开发的OpenGL ES框架

Avi*_*vio 18 c++ android cross-platform opengl-es ios

我必须开发一个可在Windows,Linux,MacOSX,Android和IOS上运行的跨平台多媒体应用程序.此应用程序必须能够播放音频/视频内容,显示照片和图形,并可能显示简单的2D动画.经过大量的搜索,似乎问题的"最便携的方法"是C++用作语言和OpenGL ES绘图API,因为几乎任何一对设备/操作系统都支持它们,性能水平会很好并且视觉外观应该在每个(一组)设备上几乎相同.

显然,我知道我必须调整应用程序的外观,以便在具有不同显示尺寸和分辨率的不同设备上"缩放".我也知道,对于这种不同架构上的任何代码要求完全相同的行为是不现实的.我只想最小化编写的代码(例如,首先在C++中重写一个接口,然后在Java中必须避免).

我不是OpenGL ES编程的专家,但是看一些样本,似乎我需要一个框架来制作一些现成的小部件(菜单,按钮,文本框).我宁愿不重新发明轮子.

这是一个低预算项目,所以我需要一个完全免费且开源的框架.当重要的东西丢失或行为不端时,后一个要求也允许自由添加/修改框架的API.我不是要求多用途框架(例如Qt),能够处理输入,网络,存储等,只是因为我强烈怀疑我提到的平台不存在这样的框架.我只想要一种OpenGL包装器能够抽象出它的许多低级细节,但也提供了一些像Qt那样的UI小部件.我将分别处理输入,网络,存储,传感器,可能使用其他跨平台开源库,如此处所示.

我在Stackoverflow和Gamedev上已经阅读了很多类似的问题,我听说过很多框架(Unity,Corona SDK,LÖVE,LibGDX,Ogre,Cocos2D-x),主要是为游戏开发而创建的.例如,Ogre和Cocos2D-x似乎符合我的一些要求,但如果我决定使用其中一个,我将必须编写几乎所有的UI元素(没有这么大的负担,有人可能会争辩).

几点评论:

  • 应用程序是2D,因此OpenGL可能看起来有点过分.但是,选择OpenGL ES是因为它具有非常好的可移植性和高性能水平,即使在旧硬件上也是如此.
  • 我基本上是一个Linux C++开发人员,所以我不希望切换到HTML5(仍然太年轻)或.NET/Mono(效率较低)而没有显着的优势.而且,我无法在短时间内掌握这些语言.
  • 我对本文中的故事印象深刻.我相信这可能是正确的方法:开源工具和适合项目需求的库的混合.但我仍然缺少最重要的部分:图形框架.
  • 写这个问题,我发现了这个令人沮丧的答案.我希望我的要求不会产生空集.我真的不能affort保持ñ在不同的UI ñ不同的平台.我真的需要一些与平台无关的东西.

任何帮助或建议将不胜感激.

小智 9

我偶然发现了这个:GamePlay 3D

支持的平台包括Blackberry,Android,iOS,Windows,Linux和Mac OS X.

您始终可以使用3D框架进行2D.