跨平台硬件原生OpenGL库,可能带有多媒体
Cross platform hardware-native OpenGL library, possibly with multimedia?
我正在寻找打开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,在这里检查相同的文件
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- FFmpeg——使用硬件加速进行视频解码
- 有关图像处理应用程序的硬件和软件安全性的建议
- HAL 中的硬件特定库
- 我们能否在stm32f中使用硬件定时器控制两个独立的进程
- 硬件抽象层 (HAL) 中实现的动态切换
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- 在硬件SIMD矢量指针和相应类型之间进行"interpret_cast"是一种未定义的行为吗
- 使用 SDL2 操作硬件纹理
- 标准::计时::时钟、硬件时钟和周期计数
- 如何使用Qt多媒体和C++将.mp4视频从OpenGL纹理中保存出来
- C++11 在异国情调的硬件上
- 编译器如何识别其主机的硬件?哪个组件?
- 在C++中拆分硬件依赖类
- 固定点硬件射线追踪产品补偿
- QML多媒体播放文件夹中的所有mp3
- 使用硬件 RX 引脚作为 arduino 的中断引脚
- 无法在硬件模式下创建 SGX 安全区 - "invalid launch token"即使文档将无效的启动令牌指定为第一个
- 跨平台硬件原生OpenGL库,可能带有多媒体