diff options
author | Ian Romanick <idr@us.ibm.com> | 2007-04-21 10:47:54 -0700 |
---|---|---|
committer | Ian Romanick <idr@us.ibm.com> | 2007-04-21 10:48:24 -0700 |
commit | ad3cc95485c488e3920f9c460b373338043000c5 (patch) | |
tree | 27eb33e96a83c15b59e7d951d7a19c74a3f8fb2c /progs | |
parent | 4e0a64675cbd815f6063977f3effbf21acced3fe (diff) |
Fix FBO completeness bug in shadowtex.
Diffstat (limited to 'progs')
-rw-r--r-- | progs/demos/shadowtex.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/progs/demos/shadowtex.c b/progs/demos/shadowtex.c index b32fb45b4f..b11c6f5363 100644 --- a/progs/demos/shadowtex.c +++ b/progs/demos/shadowtex.c @@ -296,14 +296,27 @@ RenderShadowMap(void) 0, 1, 0); /* up */ if (UseFBO) { + GLenum fbo_status; + glTexImage2D(GL_TEXTURE_2D, 0, depthFormat, ShadowTexWidth, ShadowTexHeight, 0, depthFormat, depthType, NULL); + + /* Set the filter mode so that the texture is texture-complete. + * Otherwise it will cause the framebuffer to fail the framebuffer + * completeness test. + */ + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, ShadowFBO); glDrawBuffer(GL_NONE); glReadBuffer(GL_NONE); - assert(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) - == GL_FRAMEBUFFER_COMPLETE_EXT); + + fbo_status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + if (fbo_status != GL_FRAMEBUFFER_COMPLETE_EXT) { + fprintf(stderr, "FBO not complete! status = 0x%04x\n", fbo_status); + assert(fbo_status == GL_FRAMEBUFFER_COMPLETE_EXT); + } } assert(!glIsEnabled(GL_TEXTURE_1D)); |