繁体   English   中英

Android OpenGL ES - 支持所有扩展吗?

[英]Android OpenGL ES — All Extensions Supported?

我真的很困惑OpenGL ES扩展如何在Android上运行,包括Java API和NDK的API。

首先,我来自桌面上的vanilla OpenGL世界。 在那个世界中,扩展非常直观地加载和使用。 首先检查GL_EXTENSIONS以查看系统是否公布了您需要的扩展,然后通过wglGetProcAddress,glXGetProcAddress或dlsym动态加载扩展的入口点(取决于您是分别使用WinAPI,X11还是OS X) 。

但现在,今天我刚刚第一次看到android上的GL11Ext界面,位于: http//developer.android.com/reference/javax/microedition/khronos/opengles/GL11Ext.html

我的第一个想法是“哇,什么!?所以所有的扩展都是由deafult加载!?” 那么,如果您尝试使用未由系统公布的扩展,会发生什么?

现在,我发现更令人费解的是通过NDK的OpenGL ES扩展,这对我来说似乎完全没用(除非有人可以向我解释如何加载它们)。 我需要针对android 2.2,所以我使用的是android-8 NDK平台头文件。 当我看到android-8的标题时,我确实找到了GLES / glext.h和GLES2 / gl2ext.h,但是现在发现了eglGetProcAddress()!

我想glext.h和gl2ext.h确实公开了扩展的函数声明,但是如果你要告诉我我应该使用它们那么我仍然会感到困惑。 因为在这种情况下我们回到了关于Java API的问题,“所以所有扩展都默认加载到NDK的ES API中?”

Java API中提供的唯一扩展是所有Android设备上都必须存在的扩展。 这就是为什么您不会在Java API中找到特定于供应商的扩展。 最新的NDK在android-9头文件中提供了eglGetProcAddress。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM