From: <axl...@us...> - 2009-04-05 04:10:36
|
Revision: 201 http://hgengine.svn.sourceforge.net/hgengine/?rev=201&view=rev Author: axlecrusher Date: 2009-04-05 04:10:31 +0000 (Sun, 05 Apr 2009) Log Message: ----------- update renderable's matrix logic Modified Paths: -------------- Mercury2/src/MercuryMatrix.cpp Mercury2/src/MercuryMatrix.h Mercury2/src/RenderGraph.cpp Mercury2/src/RenderGraph.h Mercury2/src/RenderableNode.cpp Mercury2/src/TransformNode.cpp Modified: Mercury2/src/MercuryMatrix.cpp =================================================================== --- Mercury2/src/MercuryMatrix.cpp 2009-04-05 00:30:19 UTC (rev 200) +++ Mercury2/src/MercuryMatrix.cpp 2009-04-05 04:10:31 UTC (rev 201) @@ -3,7 +3,7 @@ namespace MercuryMath { - MercuryMatrix IdentityMatrix; + static MercuryMatrix IdentityMatrix; } MercuryMatrix::MercuryMatrix() @@ -202,6 +202,7 @@ return r; } +MercuryMatrix MercuryMatrix::IdentityMatrix; /* * Copyright (c) 2006 Joshua Allen Modified: Mercury2/src/MercuryMatrix.h =================================================================== --- Mercury2/src/MercuryMatrix.h 2009-04-05 00:30:19 UTC (rev 200) +++ Mercury2/src/MercuryMatrix.h 2009-04-05 04:10:31 UTC (rev 201) @@ -44,6 +44,7 @@ void Identity(); void Print() const; + static MercuryMatrix IdentityMatrix; } #if !defined( WIN32 ) || defined( _MSC_VER ) M_ALIGN(64); @@ -51,10 +52,9 @@ M_ALIGN(16); #endif -namespace MercuryMath -{ - extern MercuryMatrix IdentityMatrix; -} +//namespace MercuryMath +//{ +//} #endif Modified: Mercury2/src/RenderGraph.cpp =================================================================== --- Mercury2/src/RenderGraph.cpp 2009-04-05 00:30:19 UTC (rev 200) +++ Mercury2/src/RenderGraph.cpp 2009-04-05 04:10:31 UTC (rev 201) @@ -11,7 +11,7 @@ { if ( !(m_node->IsHidden() || m_node->IsCulled()) ) { - m = m_node->FindGlobalMatrix(); + m = *m_matrix; m.Transpose(); glLoadMatrixf( m.Ptr() ); m_node->PreRender( m ); @@ -49,7 +49,7 @@ { //found a new renderable printf("Found renderable %p\n", rn); - entry.m_children.push_back( RenderGraphEntry(rn) ); + entry.m_children.push_back( RenderGraphEntry(&rn->FindGlobalMatrix(), rn) ); lastEntry = &(entry.m_children.back()); } Modified: Mercury2/src/RenderGraph.h =================================================================== --- Mercury2/src/RenderGraph.h 2009-04-05 00:30:19 UTC (rev 200) +++ Mercury2/src/RenderGraph.h 2009-04-05 04:10:31 UTC (rev 201) @@ -8,8 +8,8 @@ { friend class RenderGraph; public: - RenderGraphEntry(RenderableNode* node = NULL) - :m_node(node) + RenderGraphEntry(const MercuryMatrix* matrix = &MercuryMatrix::IdentityMatrix, RenderableNode* node = NULL) + :m_node(node), m_matrix(matrix) {} void AddChild(RenderGraphEntry entry); @@ -17,6 +17,7 @@ private: RenderableNode* m_node; //we don't own this, no new or free std::list< RenderGraphEntry > m_children; + const MercuryMatrix* m_matrix; }; class RenderGraph Modified: Mercury2/src/RenderableNode.cpp =================================================================== --- Mercury2/src/RenderableNode.cpp 2009-04-05 00:30:19 UTC (rev 200) +++ Mercury2/src/RenderableNode.cpp 2009-04-05 04:10:31 UTC (rev 201) @@ -67,7 +67,7 @@ if ( (tn = TransformNode::Cast(n)) ) return tn->GetGlobalMatrix(); - return MercuryMath::IdentityMatrix; + return MercuryMatrix::IdentityMatrix; } void RenderableNode::AddPreRender(MercuryAsset* asset) Modified: Mercury2/src/TransformNode.cpp =================================================================== --- Mercury2/src/TransformNode.cpp 2009-04-05 00:30:19 UTC (rev 200) +++ Mercury2/src/TransformNode.cpp 2009-04-05 04:10:31 UTC (rev 201) @@ -71,7 +71,7 @@ n = n->Parent(); } - return MercuryMath::IdentityMatrix; + return MercuryMatrix::IdentityMatrix; } void TransformNode::RippleTaintDown() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |