将open gl es扩展插入app

时间:2013-11-12 20:22:48

标签: android opengl-es sony-xperia

在尝试运行我的游戏时,我正在处理我的Xperia Play手机上的一些兼容性问题,因此我必须找到所有使用的OpenGL ES扩展的引用 在我的应用程序内这引出了我的问题:除了通过eglGetProcAddress()函数之外,还有其他方法可以使用扩展吗?

祝你好运, 比于克。

2 个答案:

答案 0 :(得分:0)

答案是肯定的。使用扩展的常规方法是直接通过名称调用它们,名称将包含以下字符串之一:

OES, ARB, IMG, PVR, EXT, AMD, VIV or NV

名称在这些头文件中定义:

#include <EGL/eglext.h>
#include <GLES2/gl2ext.h>

查询返回的名称不同。它们通常看起来像这样:

GL_AMD_compressed_3DC_texture  GL_AMD_compressed_ATC_texture  GL_AMD_performance_monitor  GL_AMD_program_binary_Z400  GL_AMD_tiled_rendering  GL_EXT_texture_filter_anisotropic  GL_EXT_texture_type_2_10_10_10_REV  GL_EXT_bgra  GL_OES_compressed_ETC1_RGB8_texture  GL_OES_compressed_pa​​letted_texture  GL_OES_depth_texture  GL_OES_depth24  GL_OES_EGL_image  GL_OES_EGL_image_external  GL_OES_element_index_uint  GL_OES_fbo_render_mipmap  GL_OES_fragment_precision_high  GL_OES_get_program_binary  GL_OES_packed_depth_stencil  GL_OES_rgb8_rgba8  GL_OES_standard_derivatives  GL_OES_texture_3D  GL_OES_texture_float  GL_OES_texture_half_float  GL_OES_texture_half_float_linear  GL_OES_texture_npot  GL_OES_vertex_half_float  GL_OES_vertex_type_10_10_10_2  GL_NV_fence

答案 1 :(得分:0)

不,并非所有扩展都定义了新的api调用,因此不会对所有扩展使用eglGetProcAddress。 好的例子是http://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt - 看到这里有新的令牌(枚举),但没有新的功能。

然而,在没有* gl * ext.h标头的情况下编译,在ESSL中追踪eglGetProcAddress和“#extension”字符串将至少为您提供有关已使用的非核心功能的一些信息。