是否需要OpenGL函数加载器?

时间:2019-05-26 17:27:33

标签: android opengl-es android-ndk egl

在台式机操作系统上,诸如GLEW,GLAD等的OpenGL函数加载器用于在运行时加载函数。但是在Android上呢?如何加载函数?我看过一些应用程序,它们似乎都依赖于EGLGLES。但是AFAIK EGL不是加载库,而是接口。嗯,与GLES一样的接口实际上是一个接口。

这引发了另一个问题:Android通常在台式机上不使用EGL时会如何使用?{p>

2 个答案:

答案 0 :(得分:1)

当我稍微使用android时,可以链接到GLES 2.0库,也可以链接到GLES 3.0库,就好像它们为您提供了函数指针一样。 ish。如果您使用的是GLES3.0,但您的手机仅在受支持的2.0上运行,则不会加载您的应用。要解决此问题,我始终链接到GLES 2.0,并使用eglGetProcAddress编写了自己的函数加载器,以提取GLES3.0 API(如果可用)。这几乎就是Windows / Linux上的函数加载器的工作方式(使用wglGetProcAddress或glxGetProcAddress)。

GLES一直是功能完善的桌面GL的精简版本。它始终以完全使用的API的较小子集为目标(删除了所有旧有的残篇),这反过来在某种程度上简化了OpenGL驱动程序代码,这反过来应该减少内存使用并节省一点电池寿命。基本上,它更适合用于需要电池寿命的低功率系统。

答案 1 :(得分:0)

  

通常在台式机上不使用的Android如何使用EGL?

它早在Android之前就已广泛用于嵌入式电子产品,因此我怀疑这对新的智能手机操作系统而言阻力最小,因为所有GPU供应商均已实现了EGL。