2012-12-31 2 views
6

Ich mag würde einen Bildpuffer in Java (NDK ist keine Option in diesem Fall) und übergibt es an Shadern über GL_TEXTURE_EXTERNAL_OES machen.GLES2.0: Verwenden Sie GL_TEXTURE_EXTERNAL_OES über glEGLImageTargetTexture2DOES

glTexImage2D funktioniert nicht, wie in der spec erwähnt. Aber die Funktion glEGLImageTargetTexture2DOES ist nur über die GLES11Ext Klasse verfügbar, die irgendwie falsch zu verwenden scheint.

Auf jeden Fall habe ich versucht, und es gibt mir GL_INVALID_OPERATION, die, wenn sie passieren sollte:

Wenn der GL kann keine Textur-Objekt mit Hilfe der mitgelieferten eglImageOES angeben (wenn zum Beispiel ein multigesampelte bezieht sich auf eglImageOES), wird der Fehler INVALID_OPERATION generiert.

Leider kann ich nicht Kopf oder Zahl aus dieser Beschreibung, vor allem, da die Android Java API nicht mir scheint Zugriff auf eglImageOES Funktionen zu geben. Weder habe ich ein Java Beispiel für die Verwendung dieser Funktion gefunden.

ein kleines Beispiel angeschlossen:

// Bind the texture unit 0 
GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 
throwOnError("glActiveTexture"); 

GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, _samplerLocation); 
throwOnError("glBindTexture"); 

// _output is ByteBuffer.allocateDirect(pixels * Integer.SIZE/Byte.SIZE).order(ByteOrder.nativeOrder()).asIntBuffer() 
_output.rewind(); 
_output.limit(pixels); 
GLES11Ext.glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES, _output); 
throwOnError("glEGLImageTargetTexture2DOES"); // <-- throws 

GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); 
throwOnError("glDrawArrays"); 

Hat das jemand tun, bevor oder wissen, ob dies möglich ist oder nicht?

EDIT:

hatte ich einen Blick auf glEGLImageTargetTexture2DOES Implementierung und es scheint, dass ich den Puffer richtig eingestellt haben. Hinzugefügt, aber immer noch der selbe Fehler.

+2

Prüfregeln hier zur Verfügung. Leider kann es in Android Java http://code.google.com/p/test-es/source/browse/app_image_external.cpp nicht so gemacht werden – abergmeier

Antwort

Verwandte Themen