主题中讨论的其他器件:TDA2
您好:
环境
VisionSDK 3.05
众所周知、visonSDK 上的 OpenGL 仅支持 NV12输入、因此当我们绑定纹理时、必须使用
光源纹理(1、outTexIndex);
System_eglCheckGlError ("glGenTexts");
printf ("outTexIndex 0x%x \n"、* outTexIndex);
glBindTexture (GL_纹 理_EXTERNAL_OES、* outTexIndex);
System_eglCheckGlError ("glBindTexture");
GlTextParameteri (GL_turete_external_OES、GL_turete_min_filter、GL_linear_linear);
GlTextParameteri (GL_turete_external_OES、GL_turete_mag_filter、GL_linear);
System_eglCheckGlError ("glTexParameteri");
glEGLImageTargetTexture2DOES (GL_Tecture_external_OES、(GLeglImageOES) textImg);
System_eglCheckGlError ("glEGLImageTargetTexture2DOES");
如果我们要使用 FBO (framebufferobject)、例如:
glBindTexture (GL_t纹 理_2D、m_stage_t纹 理[i]);
#if global_run_env_Desktop = 0 &&定义的 APP_RUN_ON_IMX6
//将 addr 映射到 OpenGL viv
(* g_pFnglTexDirectVIVMap)(gL_turate_2D、宽度、高度、fbo_format、
(void **)&(m_stage_FBO_vaddr[i])、(const GLuint *)(&m_stage_FBO_paddr[i]));
#else
glTextImage2D (GL_t纹 理_2D、0、FBO_format、宽度、高度、
0、FBO_format、GL_unsigned_byte、NULL);
#endif
GlTextParameteri (GL_turete_2D、GL_turete_mag_filter、GL_linear);
GlTextParameteri (GL_turete_2D、GL_turete_min_filter、GL_linear);
//绑定渲染缓冲区并创建16位深度缓冲区
//渲染缓冲区的宽度和高度=的宽度和高度
//纹理
glBindRenderbuffer (GL_RENDERBUFFER、m_STACE_DEPTY_REBUFF_BUFFER[i]);
glRenderBufferStorage (GL_RENDERBUFFER、GL_DEPTY_COMPONENT16、宽度、高度);
//绑定帧缓冲区
glBindFramebuffer (gL_framebuffer、m_stage_FBO[i]);
//将纹理指定为颜色附件
glFramebufferTexture2D (GL_framebuffer、GL_color_ATTACHMENT0、GL_tuture_2D、m_stage_tuture[i]、0);
eglCheckGlError ("glFramebufferTexture2D");
printf ("Andy debug test glFramebufferTexture2D \n");
//将 depthe_rendbufer 指定为深度附加
glFramebufferRenderbuffer (gL_framebuffer、gL_depth_attachment、gL_RENDERBUFFER、m_stage_delime_render_buffer[i]);
//检查帧缓冲完成
GLenum status = glCheckFramebufferStatus (gL_framebuffer);
对于上述代码、我们如何将 FBO 与 NV12配合使用?
根据前面讨论的内容、FBO 仅支持 RGB、这意味着我们无法将 FBO 与 NV12配合使用?
