2016-10-31 5 views
0

Ich muss mit einem kontinuierlichen Datenstrom umgehen, der doppelte Arrays füllt, von denen jedes den Bildern entspricht, die ich auf dem Hauptbildschirm anzeige. Anstatt Bitmaps zu erstellen, möchte ich OpenGL verwenden, um die Anzeige mit den eingehenden Daten zu aktualisieren.Wie aktualisiert man einen Datenstrom mit einer OpenGL-Textur?

Also, ich habe dies in einer loadTexture Methode:

int[] textureId = new int[1]; 
ByteBuffer buffer = ByteBuffer.allocateDirect(size*size*3); 
     buffer.put(data); # where data is some byte[size*size*3]; 
     buffer.position(0); 
     GLES20.glGenTextures(1, textureId, 0); 
     GLES20.glBindTexture (GLES20.GL_TEXTURE_2D, textureId[0]); 
     GLES20.glTexSubImage2D (GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGB, 512, 512, 0, 
     GLES20.GL_RGB, GLES20.GL_UNSIGNED_BYTE, buffer); 

Aber die Bilder nicht aktualisiert werden, so dass ich das gleiche Stück Code in der Methode meiner GLSurfaceView.Renderer hinzugefügt, aber es funktioniert nicht entweder. Kannst du helfen?

Antwort

0

In der Tat war es ein Fehler in dem Methodenaufruf, die ich für ein Tutorial Beispiel nahm;) Bei der Ausführung:

GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, 512, 512, 
       GLES20.GL_RGB, GLES20.GL_UNSIGNED_BYTE, bufer); 

es lief gut

Verwandte Themen