Я пытаюсь добавить некоторые эффекты в камеру в Android, {{ 1}} Я нашел кое-что в Интернете, но я застрял при создании текстуры,
Я использую функцию decodeYUV420SP (), которая возвращает мне массив int [width * height] RGB с шестнадцатеричными значениями в каждой позиции массива,
Теперь я хочу создать текстуру openGL этого массива, но я не знаю как, я могу преобразовать каждое шестнадцатеричное значение в его разделенные R_G_B и поместить его в opengl, но это не работает Я делаю что-то вроде это:
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
}
Чтобы преобразовать шестнадцатеричное значение в RGBA (от 0 до 255)
И я делаю это, чтобы преобразовать его в текстуру 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);
Однако что-то изношено, потому что это не работает ...
Есть идеи?