Estoy intentando añadir algunos efects a la cámara en Android, he encontrado algunas cosas en Internet, pero me quedé atrapado al crear la textura,int matriz para la textura de OpenGL en Android
utilizo la funcion decodeYUV420SP () que me devuelve una matriz RGB int [ancho * alto] con los valores hexadecimales en cada posición de la matriz,
Ahora, quiero crear una textura OpenGL de esta matriz pero no sé cómo, puedo convertir cada valor hexadecimal a su R_G_B separado y lo puso en opengl pero no funciona Hago algo como esto:
mNewTexture = new int[width*height*4]
for(int i=0; i<mRGB.length; i=i+4){
mNewTexture[i] = getR(mRGB[i]) ; //R
mNewTexture[i+1] = getG(mRGB[i]) ; //G
mNewTexture[i+2] = getB(mRGB[i]) ; //B
mNewTexture[i+3] = getA(mRGB[i]); //A
}
para convertir el valor hexadecimal para RGBA (de 0 a 255)
Y hago esto para convertirlo en la textura de OpenGL:
gl.glBindTexture(GL10.GL_TEXTURE_2D, tex);
gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA, 1024, 512, 0, GL10.GL_RGBA, GL10.GL_FLOAT, FloatBuffer.wrap(mNewTexture));
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
Sin embargo algo es worng, porque no lo hace trabajar ...
¿Alguna idea?