|
From: <axl...@us...> - 2009-10-11 00:49:46
|
Revision: 557
http://hgengine.svn.sourceforge.net/hgengine/?rev=557&view=rev
Author: axlecrusher
Date: 2009-10-11 00:49:38 +0000 (Sun, 11 Oct 2009)
Log Message:
-----------
we can store the asset's parent node pointer in the per-instance data
Modified Paths:
--------------
Mercury2/src/MercuryAsset.cpp
Mercury2/src/MercuryAsset.h
Mercury2/src/MercuryNode.cpp
Modified: Mercury2/src/MercuryAsset.cpp
===================================================================
--- Mercury2/src/MercuryAsset.cpp 2009-10-10 22:22:50 UTC (rev 556)
+++ Mercury2/src/MercuryAsset.cpp 2009-10-11 00:49:38 UTC (rev 557)
@@ -93,8 +93,8 @@
GLCALL( glEnd() );
}
-MercuryAssetInstance::MercuryAssetInstance(MercuryAsset* asset)
- :m_asset( asset ), m_isCulled( false ), m_iPasses( asset->GetPasses() )
+MercuryAssetInstance::MercuryAssetInstance(MercuryAsset* asset, MercuryNode* parentNode)
+ :m_parentNode(parentNode), m_asset( asset ), m_isCulled( false ), m_iPasses( asset->GetPasses() )
{
}
Modified: Mercury2/src/MercuryAsset.h
===================================================================
--- Mercury2/src/MercuryAsset.h 2009-10-10 22:22:50 UTC (rev 556)
+++ Mercury2/src/MercuryAsset.h 2009-10-11 00:49:38 UTC (rev 557)
@@ -25,7 +25,7 @@
/* Assets are stored in renderable nodes with MAuto pointers.
The renderable nodes handle the memory management
*/
-class MercuryAsset : public RefBase, MessageHandler
+class MercuryAsset : public RefBase, public MessageHandler
{
public:
MercuryAsset();
@@ -80,7 +80,7 @@
class MercuryAssetInstance
{
public:
- MercuryAssetInstance(MercuryAsset* asset);
+ MercuryAssetInstance(MercuryAsset* asset, MercuryNode* parentNode);
inline MercuryAsset& Asset() { return *m_asset; }
inline const MercuryAsset& Asset() const { return *m_asset; }
inline const MercuryAsset* AssetPtr() const { return m_asset; }
@@ -93,6 +93,7 @@
inline unsigned short GetPasses() { return m_iPasses; }
inline void SetPasses( unsigned short p ) { m_iPasses = p; }
private:
+ MercuryNode* m_parentNode;
MAutoPtr< MercuryAsset > m_asset; //actual asset storage
OcclusionResult m_occlusionResult;
bool m_isCulled;
Modified: Mercury2/src/MercuryNode.cpp
===================================================================
--- Mercury2/src/MercuryNode.cpp 2009-10-10 22:22:50 UTC (rev 556)
+++ Mercury2/src/MercuryNode.cpp 2009-10-11 00:49:38 UTC (rev 557)
@@ -34,7 +34,7 @@
void MercuryNode::AddAsset(MercuryAsset* asset)
{
- m_assets.push_back( MercuryAssetInstance(asset) );
+ m_assets.push_back( MercuryAssetInstance(asset, this) );
}
void MercuryNode::AddChild(MercuryNode* n)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|