我可以在桌面上使用OpenGL GLES代替完整的OpelGL吗?

Sim*_*nte 1 c linux opengl opengl-es

我想学习OpenGL以C语言编写游戏程序,但对于选择哪个库感到有些困惑,目的是使用游戏逻辑生成一个C库并使用Android NDK与手机中的资源进行接口。

我找到了一个使用GLESv2库的示例,并且运行良好,我想我知道GLES库是因为移动设备无法使用完整的OpenGL库而创建的。

但是真正的问题是:GLES是否是完整的OpelGL库的子集,以便我可以在Linux桌面上使用GLES库来构建和运行游戏应用程序?

如果我正确地使用这些库,您能给我一个提示吗?

Col*_*mbo 5

GLES是否是完整OpelGL库的子集,以便我可以在Linux桌面上使用GLES库来构建和运行游戏应用程序?

不它不是。OpenGLES是一个单独的规范。

也就是说,它非常接近成为OpenGL的子集。将共享的OpenGL代码编译成Linux和Android可执行文件是一种非常明智的方法。您必须小心,仅使用OpenGLES支持的功能,并且可能会发现您需要使用奇怪的#if来解释API中的细微差别,但是95%以上的代码可以在这两个API中工作。

替代方法是在桌面上使用OpenGLES API。gzh的回答暗示Linux附带了GLES,这将使生活变得轻松。但是,如果不是这样,您可以查看PowerVR的模拟器(pvrvframe)Mali的模拟器之类的工具。我唯一的经验是在Windows上使用pvrvframe,这对我们来说非常有效-性能明显比非仿真代码路径差,但它仍然能够以可玩的帧速率运行要求苛刻的手机游戏。