我如何知道设备是否支持GL_OES_standard_derivatives?

时间:2016-06-09 15:51:37

标签: android ios opengl-es glsles

我想使用需要

的GLSL ES着色器
#if GL_OES_standard_derivatives
#   extension GL_OES_standard_derivatives : enable
#endif

在我的libgdx(Android / iOS)应用中。如何确定设备是否支持此功能?

1 个答案:

答案 0 :(得分:3)

OpenGL ES有glGetString(GL_EXTENSIONS),它返回一个以空格分隔的列表。如果您可以在Android上访问Java,则可以使用GLES10类的静态方法,如下所示:

bool is_supported()
{
    return GLES10.glGetString(GLES10.GL_EXTENSIONS).contains("GL_OES_standard_derivatives");
}

如果您使用GLES 2.0或更高版本,请改用GLES20。

在iOS上,如果您有权访问C,则可以执行以下操作:

bool is_supported()
{
    return strstr(glGetString(GL_EXTENSIONS), "GL_OES_standard_derivatives") != NULL;
}