Reorganize the mrt reset procedure.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2916 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
2573257ffc
commit
0fd0e52e7e
|
@ -106,6 +106,8 @@ namespace video
|
|||
ERT_FRAME_BUFFER=0,
|
||||
//! Render target is a render texture
|
||||
ERT_RENDER_TEXTURE,
|
||||
//! Multi-Render target textures
|
||||
ERT_MULTI_RENDER_TEXTURES,
|
||||
//! Render target is the main color frame buffer
|
||||
ERT_STEREO_LEFT_BUFFER,
|
||||
//! Render target is the right color buffer (left is the main buffer)
|
||||
|
|
|
@ -3410,6 +3410,7 @@ bool COpenGLDriver::setRenderTarget(video::ITexture* texture, bool clearBackBuff
|
|||
RenderTargetTexture = 0;
|
||||
CurrentRendertargetSize = core::dimension2d<u32>(0,0);
|
||||
CurrentTarget=ERT_FRAME_BUFFER;
|
||||
glDrawBuffer(Doublebuffer?GL_BACK_LEFT:GL_FRONT_LEFT);
|
||||
}
|
||||
|
||||
clearBuffers(clearBackBuffer, clearZBuffer, false, color);
|
||||
|
@ -3424,7 +3425,7 @@ bool COpenGLDriver::setRenderTarget(const core::array<video::IRenderTarget>& tar
|
|||
if (targets.size()==0)
|
||||
return setRenderTarget(0, clearBackBuffer, clearZBuffer, color);
|
||||
|
||||
u32 maxMultipleRTTs = core::min_(4u, targets.size());
|
||||
u32 maxMultipleRTTs = core::min_(16u, targets.size());
|
||||
|
||||
// determine common size
|
||||
core::dimension2du rttSize = CurrentRendertargetSize;
|
||||
|
@ -3486,6 +3487,7 @@ bool COpenGLDriver::setRenderTarget(const core::array<video::IRenderTarget>& tar
|
|||
|
||||
if (maxMultipleRTTs > 1)
|
||||
{
|
||||
CurrentTarget=ERT_MULTI_RENDER_TEXTURES;
|
||||
core::array<GLenum> MRTs;
|
||||
MRTs.set_used(maxMultipleRTTs);
|
||||
for(u32 i = 0; i < maxMultipleRTTs; i++)
|
||||
|
|
Loading…
Reference in New Issue