Browse Source

Make MarkAllDrawable2DDirty function private in Scene class.

aster2013 11 years ago
parent
commit
3c7a52d6f3

+ 0 - 12
Source/Engine/Scene/Node.cpp

@@ -23,7 +23,6 @@
 #include "Precompiled.h"
 #include "Component.h"
 #include "Context.h"
-#include "Drawable2D.h"
 #include "Log.h"
 #include "MemoryBuffer.h"
 #include "Profiler.h"
@@ -1275,17 +1274,6 @@ void Node::MarkReplicationDirty()
     }
 }
 
-void Node::MarkAllDrawable2DDirty()
-{
-    PODVector<Drawable2D*> drawables;
-    GetDerivedComponents<Drawable2D>(drawables);
-    for (PODVector<Drawable2D*>::Iterator i = drawables.Begin(); i != drawables.End(); ++i)
-        (*i)->MarkDirty();
-
-    for (Vector<SharedPtr<Node> >::Iterator i = children_.Begin(); i != children_.End(); ++i)
-        (*i)->MarkAllDrawable2DDirty();
-}
-
 Node* Node::CreateChild(unsigned id, CreateMode mode)
 {
     SharedPtr<Node> newNode(new Node(context_));

+ 0 - 2
Source/Engine/Scene/Node.h

@@ -361,8 +361,6 @@ public:
     void MarkNetworkUpdate();
     /// Mark node dirty in scene replication states.
     void MarkReplicationDirty();
-    /// Mark all Drawable2D components attached to this node and its child nodes dirty.
-    void MarkAllDrawable2DDirty();
     /// Create a child node with specific ID.
     Node* CreateChild(unsigned id, CreateMode mode);
     /// Add a pre-created component.

+ 14 - 1
Source/Engine/Scene/Scene.cpp

@@ -24,6 +24,7 @@
 #include "Component.h"
 #include "Context.h"
 #include "CoreEvents.h"
+#include "Drawable2D.h"
 #include "File.h"
 #include "Log.h"
 #include "PackageFile.h"
@@ -437,7 +438,7 @@ void Scene::SetElapsedTime(float time)
 void Scene::SetUnitSize2D(float pixels)
 {
     unitSize2D_ = pixels;
-    MarkAllDrawable2DDirty();
+    MarkAllDrawable2DDirty(this);
     Node::MarkNetworkUpdate();
 }
 
@@ -967,6 +968,18 @@ void Scene::FinishSaving(Serializer* dest) const
     }
 }
 
+void Scene::MarkAllDrawable2DDirty(Node* node)
+{
+    PODVector<Drawable2D*> drawables;
+    node->GetDerivedComponents<Drawable2D>(drawables);
+    for (PODVector<Drawable2D*>::Iterator i = drawables.Begin(); i != drawables.End(); ++i)
+        (*i)->MarkDirty();
+
+    const Vector<SharedPtr<Node> >& children = node->GetChildren();
+    for (unsigned i = 0; i < children.Size(); ++i)
+        MarkAllDrawable2DDirty(children[i]);
+}
+
 void RegisterSceneLibrary(Context* context)
 {
     Node::RegisterObject(context);

+ 2 - 0
Source/Engine/Scene/Scene.h

@@ -197,6 +197,8 @@ private:
     void FinishLoading(Deserializer* source);
     /// Finish saving. Sets the scene filename and checksum.
     void FinishSaving(Serializer* dest) const;
+    /// Mark all Drawable2D components attached to this node and its child nodes dirty.
+    void MarkAllDrawable2DDirty(Node* node);
 
     /// Replicated scene nodes by ID.
     HashMap<unsigned, Node*> replicatedNodes_;