我想使用需要
的GLSL ES着色器#if GL_OES_standard_derivatives
# extension GL_OES_standard_derivatives : enable
#endif
在我的libgdx(Android / iOS)应用中。如何确定设备是否支持此功能?
答案 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;
}