|
From: <axl...@us...> - 2009-06-14 19:21:20
|
Revision: 331
http://hgengine.svn.sourceforge.net/hgengine/?rev=331&view=rev
Author: axlecrusher
Date: 2009-06-14 19:21:19 +0000 (Sun, 14 Jun 2009)
Log Message:
-----------
upload model matrix
Modified Paths:
--------------
Mercury2/src/RenderGraph.cpp
Modified: Mercury2/src/RenderGraph.cpp
===================================================================
--- Mercury2/src/RenderGraph.cpp 2009-06-14 16:25:45 UTC (rev 330)
+++ Mercury2/src/RenderGraph.cpp 2009-06-14 19:21:19 UTC (rev 331)
@@ -3,18 +3,33 @@
#include <GLHeaders.h>
+#include <Shader.h>
+
void RenderGraphEntry::Render()
{
- MercuryMatrix m;
+ MercuryMatrix modelView;
if (m_node)
{
m_node->PreRender( *m_matrix ); //calls on children assets
- m = m_node->ManipulateMatrix( *m_matrix );
- if ( m_node->IsHidden() || m_node->IsCulled(m) ) return;
- m.Transpose();
- glLoadMatrixf( m.Ptr() );
- m_node->Render( m ); //calls on children assets
+ modelView = m_node->ManipulateMatrix( *m_matrix );
+ if ( m_node->IsHidden() || m_node->IsCulled(modelView) ) return;
+ modelView.Transpose();
+
+ glLoadMatrixf( modelView.Ptr() );
+
+ Shader* currentShader = Shader::GetCurrentShader();
+ if ( currentShader )
+ {
+ int location = currentShader->GetUniformLocation("HG_ModelMatrix");
+ if ( location != -1 )
+ {
+ glUniformMatrix4fv(location, 1, 1,m_matrix->Ptr());
+ GLERRORCHECK;
+ }
+ }
+
+ m_node->Render( modelView ); //calls on children assets
}
//call render on other render graph entries under me
@@ -24,8 +39,8 @@
if (m_node)
{
- glLoadMatrixf( m.Ptr() );
- m_node->PostRender( m ); //calls on children assets
+ glLoadMatrixf( modelView.Ptr() );
+ m_node->PostRender( modelView ); //calls on children assets
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|