Android Opengl ES: GLUtils.glTexImage2D causando GL_INVALID_ENUM

Estoy intentando hacer un cuadrado textured simple en Android 2.2 usando GLSurfaceView . Estoy cargando una imagen BMP (128×128) con BitmapFactory.decodeResource() – esto parece funcionar. Pero siempre que intento poner este mapa de bits en una textura de OpenGL usando GLUtils.glTexImage2D consigo un error de OpenGL: glGetError() devuelve 1280, GL_INVALID_ENUM . ¿Qué estoy haciendo mal? Este es el código para mi Renderer:

 public class MyRenderer implements GLSurfaceView.Renderer { Context context; int texId; public MyRenderer(Context c) { this.context = c; } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { gl.glEnable(GL10.GL_TEXTURE_2D); this.texId = loadTexture(gl); } int loadTexture(GL10 gl) { int[] tmp = new int[1]; gl.glGenTextures(1, tmp, 0); int id = tmp[0]; Bitmap bmp = BitmapFactory.decodeResource(this.context.getResources(), R.drawable.myimage); gl.glGetError(); GLUtils.texImage2D(id, 0, bmp, 0); int err = gl.glGetError(); if (err != 0) { // err == 1280, prints "invalid enum": System.err.println(GLU.gluErrorString(err)); } return id; } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); GLU.gluOrtho2D(gl, 0, width, height, 0); gl.glMatrixMode(GL10.GL_MODELVIEW); gl.glLoadIdentity(); } @Override public void onDrawFrame(GL10 gl) { // ... } } 

One Solution collect form web for “Android Opengl ES: GLUtils.glTexImage2D causando GL_INVALID_ENUM”

Probablemente debería ser algo como:

 gl.glBindTexture(GL10.GL_TEXTURE_2D, id); GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bmp, 0); 
  • Reduzca el uso de memoria para texturas en OpenGL ES 1.1
  • Extensiones OpenGL disponibles en diferentes dispositivos Android
  • OpenGl render directamente a mapa de bits (sin ninguna vista)
  • Cómo detectar el clic en un objeto en OpenGL ES en la aplicación de Android?
  • El ejemplo de Android openGL da una pantalla en blanco
  • Problema con la vista previa de la cámara Android de OpenGL
  • "SDK-buildable" Navegadores Web de código abierto para Android
  • Buffer de profundidad OpenGL en Android
  • ¿Cómo funciona la función gluProject? No puedo entenderlo
  • Llamar para comprobar si existe un EGLContext actual en Android
  • Android: Decidir entre SurfaceView y OpenGL (GLSurfaceView)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.