请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TDA4VM 您好 ,专家
引用 ext_multith被 采样_reender_TO_纹 理.txt、
但是调用 glRenderbufferStorageMultisampleEXT 会导致帧缓冲区完成失败,当参数样本大于0时!
不支持的案例?
下面的简单代码:
GLint samples;
glGetIntegerv(GL_MAX_SAMPLES_EXT, &samples);
GLint renderbuffs;
glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &renderbuffs);
printf("EGL--------------------samples[%d] renderbuffs[%d] width[%d] height[%d]\n",samples,renderbuffs,prop->width,prop->height);
GLuint rboDepthStencil;
glGenRenderbuffers(1, &rboDepthStencil);
glBindRenderbuffer(GL_RENDERBUFFER, rboDepthStencil);
glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, samples, GL_DEPTH_COMPONENT16, prop->width, prop->height);//GL_DEPTH24_STENCIL8_OES GL_DEPTH_COMPONENT16_OES
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glGenTextures(1, &tex_obj->tex);
glBindTexture(GL_TEXTURE_2D, tex_obj->tex);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, prop->width, prop->height, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glBindTexture(GL_TEXTURE_2D, 0);
glGenFramebuffers(1, &tex_obj->fboId);
glBindFramebuffer(GL_FRAMEBUFFER, tex_obj->fboId);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rboDepthStencil);
//glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, rboDepthStencil);
glFramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex_obj->tex, 0, samples);
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) !=
GL_FRAMEBUFFER_COMPLETE)
{
printf("EGL----------------GL_FRAMEBUFFER_COMPLETE failed !!!\n");
}
printf 结果:
EGL-------- 样片[4]渲染器[4096]宽度[1344]高度[720]
EGL-------- gL_framebuffer_complete 失败!!!