Another typo in the MRT inits, also make sure these mixed MRTs really work.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2918 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2009-11-23 20:36:27 +00:00
parent 9b418dbd9e
commit e0440b4627
1 changed files with 13 additions and 4 deletions

View File

@ -3480,11 +3480,20 @@ bool COpenGLDriver::setRenderTarget(const core::array<video::IRenderTarget>& tar
return false;
}
if (targets[0].TargetType==ERT_RENDER_TEXTURE)
setRenderTarget(targets[0].RenderTexture, false, false, 0x0);
else
// init FBO, if any
for (u32 i=0; i<maxMultipleRTTs; ++i)
{
if (targets[i].TargetType==ERT_RENDER_TEXTURE)
{
setRenderTarget(targets[i].RenderTexture, false, false, 0x0);
break;
}
}
// init other main buffer, if necessary
if (targets[0].TargetType!=ERT_RENDER_TEXTURE)
setRenderTarget(targets[0].TargetType, false, false, 0x0);
// attach other textures and store buffers into array
if (maxMultipleRTTs > 1)
{
CurrentTarget=ERT_MULTI_RENDER_TEXTURES;
@ -3508,7 +3517,7 @@ bool COpenGLDriver::setRenderTarget(const core::array<video::IRenderTarget>& tar
{
extGlBlendFuncIndexed(i, targets[i].BlendFuncSrc, targets[i].BlendFuncDst);
}
if (targets[0].TargetType==ERT_RENDER_TEXTURE)
if (targets[i].TargetType==ERT_RENDER_TEXTURE)
{
GLenum attachment = GL_NONE;
#ifdef GL_EXT_framebuffer_object