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