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

时间:2011-11-20 10:36:50

标签: c++ opengl cross-platform native multimedia

我正在寻找能够打开OpenGL上下文并在Windows,macOS,Linux发行版中使用X,android和iOS绘制原生OpenGL的能力

我不想依赖实际UI的“原生”设备框架,我不需要使用本机组件,我想要的只是一个OpenGL上下文,可以在OpenGL中原生绘制。许多像Marmalade和MoSync这样的跨平台SDK专注于使用本机UI组件和类似的东西,我只需要按照我的意图绘制OpenGl上下文,绝对不需要本机UI功能,但访问如果可能,需要麦克风,摄像头和其他传感器等本机硬件功能,以及访问音频/视频/网络。

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

所以我需要一个最低限度的解决方案,以避免尽可能地使用非跨平台功能。

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

2 个答案:

答案 0 :(得分:4)

怎么样:

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

基本上,他们打开一个窗口,在其上创建一个OpenGL上下文,为您提供输入事件,剩下的就由您完成。

答案 1 :(得分:3)

你想要的只不过是一个特定于平台的OpenGL上下文设置(它非常简单并且有很好的文档记录:NeHe OpenGL教程为许多环境提供代码here(解释是Windows专用的) ,向下滚动查看不同操作系统上的代码。)

拥有OpenGL上下文后,没有什么可以阻止您使用所有OpenGL元素创建完整的GUI。

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

关于SDL + Android,您是否检查了README

对于iOS,请检查相同的文件here