2009-09-07 150 views
10

我开始在ARM/Linux上开发OpenGL ES,我想画全屏,但不知道从哪里开始。如何在Linux中绘制OpenGL ES?

我是不是开发iPhone或Android。这是一个Linux/OpenGL ES问题。

我知道这是可能对帧缓冲战平的OpenGL ES没有任何,但我没有找到有关该主题的任何资源,你能帮帮我吗?


我没有任何代码来显示如何做到这一点,但basicly您使用去帧缓冲设备和OpenGL的目标| ES操作。

回答

2

Here是一个教程,展示了如何结合OpenGL ES使用SDL。它适用于OpenPandora平台,但由于它运行的是Linux,因此如果能够获得正确的库版本,它应该适用于桌面。

在Linux中,SDL的使用或多或少是这种编程的标准。您当然可以走更长的路线,自己打开窗户,附加GL渲染上下文等,但通常学习SDL的相关部分会更容易。这也为您提供了易于使用的API:用于输入读取,这几乎总是必要的。

+0

我不想使用任何库只是简单的OpenGL ES实现的Linux和帧缓冲设备。 – amirouche 2010-05-17 13:54:14

3

不要忘记,桌面Linux提供了OpenGL,而不是OpenGLES!它们相似但不完全兼容。如果您想在桌面Linux平台,ARM或其他平台上使用OpenGLES,则需要OpenGLES模拟器库。对不起,不能推荐任何,我正在寻找一个自己。

OpenGLES只是处理将东西绘制到窗口中的过程。您还需要一个窗口库,它处理创建窗口以绘制内容的过程,以及一个事件库,该窗口处理从窗口返回的输入事件。

SDL将提供最后两个,以及其他一些库。 Khronos本身已经将EGL标准化为窗口库和OpenKODE作为事件库......但我实际上并不知道从哪里获得Linux的开放源代码实现。 (我为一家为嵌入式平台开发EGL和OpenKODE的公司工作,所以我从未需要找到一个开源版本!)

4

ARM提供很少支持OpenGL 2.0的GPU。你可以在Mali Developer网站上找到一些在linux上运行的例子和模拟器。 当然,这主要是针对ARM GPU,但我非常肯定它可以用来检查OpenGL ES编程的可能性。

5

您是否正在开发嵌入式平台作为目标?如果是这样,您可以在主机系统上使用软件实现,然后在嵌入式设备上使用实际的驱动程序。

在Linux上有一个支持OpenGLES 1.1的小项目叫做dlges。您也可以尝试mesa

我认为驱动程序本身可能有一个OpenGL的头文件,你可以看看它是否支持OpenGLES调用。或者,您可以设置函数指针,以使您的OpenGL代码看起来更像OpenGL ES。

祝你好运!