|
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.
|