У меня есть ByteBuffer
с кадром RGB из видео, поэтому он имеет размер 1280x720x3
.
Я хочу визуализировать его с помощью OpenGL. Вот мой фрагментный шейдер:
public static final String videoFragment =
"#version 320 es\n"+
"precision mediump float;" +
"uniform float alpha;\n" +
"uniform sampler2D sampler;\n"+
"\n" +
"in vec2 TexCoord;\n" +
"out vec4 FragColor;\n" +
"void main()\n" +
"{\n" +
" vec4 rgba;\n" +
" rgba.rgb = texture(sampler, TexCoord).rgb;\n" +
" rgba.a = 1.0f;\n" +
" //FragColor = vec4(1.0f,0,0,1.0f);\n" +
" FragColor = rgba;\n" +
"}\n";
Как его заполнить, используя glTexImage2D
? Я хочу поместить в него свои данные RGB. Я пробовал много комбинаций GLES20.GL_RGB
и других, но они не работают или я просто получаю черно-белое изображение:
GLES20.glTexImage2D(
GLES20.GL_TEXTURE_2D,
0,
GLES20.?,
1280,
720,
0,
GLES20.?,
GLES20.?,
buffer);