Android OpenGL各向异性过滤未按预期工作

Android OpenGL各向异性过滤未按预期工作,android,opengl-es,Android,Opengl Es,我正在尝试在OpenGL ES 1.1游戏中检测并启用GL_纹理_最大_各向异性_EXT。设备报告支持扩展,并返回正确的最大各向异性级别,但当我尝试启用它时,我得到GL_INVALID_ENUM 下面是我现在使用的代码: if(GLES11.glGetString(GLES11.GL_EXTENSIONS).contains("GL_EXT_texture_filter_anisotropic")) { System.out.println("will use GL_EXT_textur

我正在尝试在OpenGL ES 1.1游戏中检测并启用GL_纹理_最大_各向异性_EXT。设备报告支持扩展,并返回正确的最大各向异性级别,但当我尝试启用它时,我得到GL_INVALID_ENUM

下面是我现在使用的代码:

if(GLES11.glGetString(GLES11.GL_EXTENSIONS).contains("GL_EXT_texture_filter_anisotropic"))
{
    System.out.println("will use GL_EXT_texture_filter_anisotropic");
    GLES11.glGetError();//clean any prevous errors
    GLES11.glTexParameteri(GLES11.GL_TEXTURE_2D, GLES11Ext.GL_TEXTURE_MAX_ANISOTROPY_EXT, GetMaxAnisotropy());
    int err = GLES11.glGetError();
    System.out.println("error : "+err);//<- prints 1280 (GL_INVALID_ENUM)
}
if(GLES11.glGetString(GLES11.GL\u扩展名)。包含(“GL\u EXT\u texture\u filter\u各向异性”))
{
System.out.println(“将使用GL_EXT_texture_filter_各向异性”);
GLES11.glGetError();//清除所有以前的错误
GLES11.glTexParameteri(GLES11.GL_TEXTURE_2D,GLES11Ext.GL_TEXTURE_MAX_各向异性_EXT,getMax各向异性());
int err=GLES11.glGetError();

System.out.println(“错误:“+err”);//根据,各向异性值是一个浮点值。您是否尝试过使用
TexParameterf
设置它?是的,浮点和int调用都会给出相同的结果。我假设您在进行该调用时实际有一个2D纹理绑定?各向异性是ES中的每个纹理对象…在桌面GL中,您可以为每个采样器对象设置它。是的,纹理是bo嗯,如果我对这个电话进行评论,一切都会按预期进行。
private int GetMaxAnisotropy()
{
    int[] maxAnisotropy = new int[1];

    GLES11.glGetIntegerv(GLES11Ext.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, maxAnisotropy, 0);
    System.out.println("max: "+maxAnisotropy[0]);//<-- prints 16
    return maxAnisotropy[0];
}
05-21 13:42:03.070: I/System.out(14110): error : 1280
05-21 13:42:03.070: I/System.out(14110): will use GL_EXT_texture_filter_anisotropic
05-21 13:42:03.070: I/System.out(14110): maxAnisotropy: 16.0
05-21 13:42:03.070: E/Adreno-ES11(14110): <qglDrvAPI_glTexParameterfv:75>: GL_INVALID_ENUM