Closed. This question does not meet
Stack Overflow guidelines。它当前不接受答案。
想要改善这个问题吗?更新问题,以便将其作为
on-topic用于堆栈溢出。
7年前关闭。
Improve this question
我必须开发一个跨平台的多媒体应用程序,该应用程序可以在
Windows,Linux,MacOSX,Android和IOS 上运行。该应用程序必须能够播放音频/视频内容,显示照片和图形,并可能显示简单的2D动画。经过大量搜索后,似乎该问题的“最可移植的方法”是使用
C++
作为语言,并使用
OpenGL ES
作为绘图API,因为几乎任何一对设备/OS都支持这两者,因此性能水平将良好,并且每个(组)设备的视觉外观应接近相同。
显然,我知道我必须调整应用程序的外观,以便在具有不同显示尺寸和分辨率的不同设备上“缩放”。我也知道,对于在这样不同的体系结构上的任何代码都要求完全相同的行为是不现实的。我只是想尽量减少编写的代码(例如,首先要避免在C++中重写接口(interface),然后再避免在Java中重写)。
我不是OpenGL ES编程专家,但查看一些示例,似乎我需要一个框架来包含一些现成的小部件(菜单,按钮,文本框)。我宁愿不要重新发明轮子。
这是一个低预算的项目,因此我需要一个完全免费的
和开源的框架。后一项要求还使您可以在缺少重要内容或行为不当时自由添加/修改框架的API。我并不是要一个能够处理输入,网络,存储等功能的多功能框架(例如Qt),只是因为我强烈怀疑我提到的平台不存在这样的框架。我只想要一种OpenGL包装器,它可以抽象许多低层细节,而且还提供Qt可以提供的一些UI小部件。我将分别使用建议的
here来处理输入,网络,存储,传感器,可能使用其他跨平台的开源库。
我已经阅读了关于Stackoverflow和
Gamedev的许多类似问题,并且听说了许多主要用于游戏开发的框架(
Unity,
Corona SDK,
LÖVE,
LibGDX,
Ogre,
Cocos2D-x)。例如,Ogre和Cocos2D-x似乎可以满足我的一些要求,但是如果我决定使用其中之一,则必须编写几乎所有的UI元素(有人可能会争论不那么大)。
几点评论:
该应用程序是2D的,因此OpenGL似乎有点过分。但是,选择OpenGL ES是因为它具有很好的可移植性以及即使在旧硬件上也具有很高的性能水平。 我基本上是Linux C++开发人员,所以我宁愿不要切换到HTML5(还太年轻)或.NET/Mono(效率不高)而没有明显的优势。而且,我无法在短期内实际掌握这些语言。 我对this article中的故事印象深刻。我相信这可能是正确的方法:混合使用开放源代码工具和适合项目需求的库。但是我仍然缺少最重要的部分:图形框架。 写这个问题,我发现this discouraging answer。我希望我的要求不会产生空集。我真的不敢在n个不同的平台上维护n个不同的UI。我真的需要平台无关的东西。 任何帮助或建议,将不胜感激。