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