跨平台硬件原生OpenGL库,可能带有多媒体



我正在寻找打开OpenGL上下文并在windows, macOS, linux发行版中绘制原生OpenGL的能力与X, android和iOS

我不想在实际的UI中依赖于"本地"设备框架,我不需要使用本地组件,我想要的只是一个OpenGL上下文来在OpenGL中本地绘制。许多跨平台sdk(如Marmalade和MoSync)都专注于利用原生UI组件和类似的东西,我所需要的只是一个OpenGl上下文来绘制我想要的东西,绝对不需要原生UI功能,但是,如果可能的话,需要访问原生硬件功能,如麦克风,摄像头和其他传感器,以及访问音频/视频/网络。

我不想使用QT,我想做一些更接近硬件的东西,在底层工作。一般的想法是制作一个轻量级的跨平台硬件加速GUI,在一个足够低的级别上编写真正的硬件本机,而不依赖于任何本机软件框架。我知道对于android,我可能不得不使用java包装器来启动本机代码,但我的想法是将这个包装器最小化,只需要很少的修改就可以部署低级别的,因此希望真正的跨平台代码,这只依赖于OpenGL硬件和OpenGL上下文。

所以我需要一个最小的解决方案来尽可能避免使用非跨平台的功能。

当时我想到的唯一的库是SDL,但我不确定它是否支持android和iOS的属性,所以除了库的建议,更多关于SDL如何处理android和iOS设备及其硬件的信息也很受欢迎。

如何:

  • GLFW
  • SDL
  • GLUT (FreeGLUT或OpenGLUT)
  • Blender的GHOST框架?

基本上他们打开一个窗口,在上面创建一个OpenGL上下文,传递给你输入事件,剩下的留给你。

你想要的只不过是一个平台特定的OpenGL上下文设置(这是相当简单和良好的文档:NeHe OpenGL教程提供了许多环境的代码,就是在这里做的(解释是Windows特定的,向下滚动不同操作系统上的代码)。

一旦你有了OpenGL上下文,没有什么能阻止你用所有OpenGL元素创建一个完整的GUI。

如果你想,你可以使用Qt只设置一个OpenGL上下文(即不使用任何QWidgets或任何东西,除了显示你的OpenGL场景的窗口)。它负责整个设置过程,但仅此而已,Qt变成了一个巨大的依赖,因为每个平台最多只能替换100行代码。

关于SDL+Android,你检查了README吗?

对于iOS,在这里检查相同的文件

最新更新