int Array zu öffnenGL Textur in Android

9

Ich versuche, der Kamera in Android einige Efekte hinzuzufügen, Ich habe ein paar Dinge im Internet gefunden, aber ich bin beim Erstellen der Textur hängen geblieben,

Ich benutze die Funktion decodeYUV420SP (), die mir ein int [width * height] RGB-Array mit den Hex-Werten in jeder Array-Position zurückgibt,

Nun möchte ich eine OpenGL-Textur dieses Arrays erstellen, aber ich weiß nicht wie, ich kann jeden Hex-Wert zu seinem R_G_B getrennt konvertieren und es in opengl setzen, aber es funktioniert nicht Ich mache so etwas:

%Vor%

Um den Hexadezimalwert in RGBA (von 0 bis 255) zu konvertieren

Und ich mache das, um es in die OpenGL-Textur zu konvertieren:

%Vor%

Aber etwas ist wichtig, weil es nicht funktioniert ...

Irgendeine Idee?

    
Jordi Puigdellívol 13.10.2011, 13:38
quelle

1 Antwort

2

Warum versuchen Sie, Ihr int-Array als FloatBuffer umzubrechen? Die meisten Ihrer Conversions sind nicht erforderlich.

Nehmen Sie einfach Ihre ursprüngliche Textur, wickeln Sie sie in einen Byte-Puffer und übergeben Sie sie an glTexImage mit dem Typ GL_UNSIGNED_BYTE. Es besteht keine Notwendigkeit, ein neues Array von dem zu erstellen, was Sie bereits haben.

gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA, 1024, 512, 0, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, ByteBuffer.wrap(mRGB));

    
Tim 10.08.2012, 23:51
quelle

Tags und Links