Как использовать glTexImage2D для заливки текстуры RGB и ее отображения? - PullRequest
1 голос
/ 11 июля 2020

У меня есть 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); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...