|
From: <axl...@us...> - 2009-06-14 13:07:40
|
Revision: 323
http://hgengine.svn.sourceforge.net/hgengine/?rev=323&view=rev
Author: axlecrusher
Date: 2009-06-14 13:07:39 +0000 (Sun, 14 Jun 2009)
Log Message:
-----------
udpates
Modified Paths:
--------------
Mercury2/src/MercuryFBO.cpp
Mercury2/src/MercuryFBO.h
Modified: Mercury2/src/MercuryFBO.cpp
===================================================================
--- Mercury2/src/MercuryFBO.cpp 2009-06-14 13:05:36 UTC (rev 322)
+++ Mercury2/src/MercuryFBO.cpp 2009-06-14 13:07:39 UTC (rev 323)
@@ -61,7 +61,6 @@
for (uint8_t i = 0; i < m_numTextures; ++i)
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT + i, GL_TEXTURE_2D, m_textures[i]->TextureID(), 0 );
-
if( m_useDepth )
glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, m_depthBufferID );
}
@@ -92,29 +91,27 @@
MString n = ssprintf("%s_%d", m_name.c_str(), i);
m_textures[i]->MakeDynamic(m_width, m_height,n);
}
- Bind();
}
+ Bind();
+ CHECKFBO; //Incomplete FBO
+ GLERRORCHECK;
}
- GLERRORCHECK;
RenderableNode::PreRender(matrix);
}
void MercuryFBO::Render(const MercuryMatrix& matrix)
{
- if (m_lastRendered != m_fboID)
- {
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fboID);
-// CHECKFBO; //Incomplete FBO
- GLERRORCHECK;
- m_lastRendered = m_fboID;
-// m_lastInStask = m_lastRendered;
- }
-
- GLERRORCHECK;
+ glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fboID);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
GLERRORCHECK;
+ const GLenum buffers[8] = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_COLOR_ATTACHMENT2_EXT,
+ GL_COLOR_ATTACHMENT3_EXT, GL_COLOR_ATTACHMENT4_EXT, GL_COLOR_ATTACHMENT5_EXT,
+ GL_COLOR_ATTACHMENT6_EXT, GL_COLOR_ATTACHMENT7_EXT };
+
+ glDrawBuffersARB( m_numTextures, buffers );
+
glPushAttrib(GL_VIEWPORT_BIT);
if ( !m_useScreenSize ) glViewport(0,0,m_width, m_height);
@@ -126,21 +123,23 @@
void MercuryFBO::PostRender(const MercuryMatrix& matrix)
{
- GLERRORCHECK;
glPopAttrib();
-
-// glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_lastInStask);
-// m_lastRendered = m_lastInStask;
RenderableNode::PostRender(matrix);
- GLERRORCHECK;
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); //unbind
+// for( uint8_t i = 0; i < m_numTextures; i++ )
+// {
+// glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT + i, GL_TEXTURE_2D, 0, 0 );
+// glActiveTextureARB( GL_TEXTURE0_ARB + i );
+// glDisable( GL_TEXTURE_2D );
+// }
+ glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, 0 );
+// glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, 0 );
CHECKFBO;
GLERRORCHECK;
- m_lastRendered = 0;
+// m_lastRendered = 0;
}
void MercuryFBO::LoadFromXML(const XMLNode& node)
@@ -163,7 +162,7 @@
RenderableNode::LoadFromXML(node);
}
-uint32_t MercuryFBO::m_lastRendered = NULL;
+//uint32_t MercuryFBO::m_lastRendered = NULL;
/****************************************************************************
* Copyright (C) 2009 by Joshua Allen *
Modified: Mercury2/src/MercuryFBO.h
===================================================================
--- Mercury2/src/MercuryFBO.h 2009-06-14 13:05:36 UTC (rev 322)
+++ Mercury2/src/MercuryFBO.h 2009-06-14 13:07:39 UTC (rev 323)
@@ -38,7 +38,7 @@
MAutoPtr< Texture > m_textures[4];
uint8_t m_numTextures;
- static uint32_t m_lastRendered;
+// static uint32_t m_lastRendered;
// uint32_t m_lastInStask;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|