显示OpenglES缓冲区的内容

时间:2013-09-26 07:15:44

标签: c++ opengl-es opengl-es-2.0

我想将yuv到rgb转换后的帧显示为默认显示。目前我正在使用以下代码执行此操作,其中yuv到rgb的转换是由加载CPU的汇编代码完成的。我找到了一些与opengles相同的代码。

Yuv420_to_RGB(ui8buf, buffer1, h1, w1);  /* RGB data will be resulted in buffer1 */
window = ANativeWindow_fromSurface(env, surface);
ANativeWindow_acquire(window);
wid = ANativeWindow_getWidth(window);
hei = ANativeWindow_getHeight(window);
ANativeWindow_setBuffersGeometry(window,w1,h1,1)

if (ANativeWindow_lock(window, &buffer, NULL) == 0)
{
    memcpy(buffer.bits, buffer1, (4* w1*h1));
    ANativeWindow_unlockAndPost(window);
}
ANativeWindow_release(window);

我的opengles例程以glDrawArrays结尾。如何显示opengles转换的结果?

1 个答案:

答案 0 :(得分:0)

您发布的任何代码都不会对OpenGL-ES产生任何影响。使用OpenGL(-ES)实现颜色空间转换的典型方法是将图像加载到纹理,加载片段着色器执行颜色转换和绘制 a(完整视口)纹理四边形(如果四边形几何体之前已加载到顶点数组中,那就是glDrawArrays将要做的事情。)