浏览代码

Remove unused code, rename DefaultMaterial to Material.

aster2013 11 年之前
父节点
当前提交
35735b11d3

+ 7 - 24
Source/Engine/Urho2D/Drawable2D.cpp

@@ -24,18 +24,10 @@
 #include "Camera.h"
 #include "Camera.h"
 #include "Context.h"
 #include "Context.h"
 #include "Drawable2D.h"
 #include "Drawable2D.h"
-#include "Geometry.h"
-#include "Log.h"
 #include "Material.h"
 #include "Material.h"
-#include "Node.h"
 #include "Renderer2D.h"
 #include "Renderer2D.h"
-#include "ResourceCache.h"
 #include "Scene.h"
 #include "Scene.h"
-#include "Sprite2D.h"
-#include "SpriteSheet2D.h"
-#include "Technique.h"
 #include "Texture2D.h"
 #include "Texture2D.h"
-#include "VertexBuffer.h"
 
 
 #include "DebugNew.h"
 #include "DebugNew.h"
 
 
@@ -51,7 +43,6 @@ Drawable2D::Drawable2D(Context* context) :
     orderInLayer_(0),
     orderInLayer_(0),
     blendMode_(BLEND_ALPHA),
     blendMode_(BLEND_ALPHA),
     verticesDirty_(true),
     verticesDirty_(true),
-    materialUpdatePending_(false),
     visibility_(true)
     visibility_(true)
 {
 {
 }
 }
@@ -64,7 +55,7 @@ void Drawable2D::RegisterObject(Context* context)
 {
 {
     ACCESSOR_ATTRIBUTE("Layer", GetLayer, SetLayer, int, 0, AM_DEFAULT);
     ACCESSOR_ATTRIBUTE("Layer", GetLayer, SetLayer, int, 0, AM_DEFAULT);
     ACCESSOR_ATTRIBUTE("Order in Layer", GetOrderInLayer, SetOrderInLayer, int, 0, AM_DEFAULT);
     ACCESSOR_ATTRIBUTE("Order in Layer", GetOrderInLayer, SetOrderInLayer, int, 0, AM_DEFAULT);
-    ENUM_ACCESSOR_ATTRIBUTE("Blend Mode", GetBlendMode, SetBlendModeAttr, BlendMode, blendModeNames, BLEND_ALPHA, AM_DEFAULT);
+    ENUM_ACCESSOR_ATTRIBUTE("Blend Mode", GetBlendMode, SetBlendMode, BlendMode, blendModeNames, BLEND_ALPHA, AM_DEFAULT);
     COPY_BASE_ATTRIBUTES(Drawable);
     COPY_BASE_ATTRIBUTES(Drawable);
 }
 }
 
 
@@ -96,7 +87,7 @@ void Drawable2D::SetTexture(Texture2D* texture)
     texture_ = texture;
     texture_ = texture;
 
 
     verticesDirty_ = true;
     verticesDirty_ = true;
-    defaultMaterial_ = 0;
+    material_ = 0;
     
     
     OnMarkedDirty(node_);
     OnMarkedDirty(node_);
     MarkNetworkUpdate();
     MarkNetworkUpdate();
@@ -108,7 +99,7 @@ void Drawable2D::SetBlendMode(BlendMode blendMode)
         return;
         return;
 
 
     blendMode_ = blendMode;
     blendMode_ = blendMode;
-    defaultMaterial_ = 0;
+    material_ = 0;
 
 
     MarkNetworkUpdate();
     MarkNetworkUpdate();
 }
 }
@@ -118,14 +109,14 @@ Texture2D* Drawable2D::GetTexture() const
     return texture_;
     return texture_;
 }
 }
 
 
-void Drawable2D::SetDefaultMaterial(Material* material)
+void Drawable2D::SetMaterial(Material* material)
 {
 {
-    defaultMaterial_ = material;
+    material_ = material;
 }
 }
 
 
-Material* Drawable2D::GetDefaultMaterial() const
+Material* Drawable2D::GetMaterial() const
 {
 {
-    return defaultMaterial_;
+    return material_;
 }
 }
 
 
 const Vector<Vertex2D>& Drawable2D::GetVertices()
 const Vector<Vertex2D>& Drawable2D::GetVertices()
@@ -135,14 +126,6 @@ const Vector<Vertex2D>& Drawable2D::GetVertices()
     return vertices_;
     return vertices_;
 }
 }
 
 
-void Drawable2D::SetBlendModeAttr(BlendMode mode)
-{
-    // Delay applying material update
-    materialUpdatePending_ = true;
-
-    SetBlendMode(mode);
-}
-
 void Drawable2D::OnNodeSet(Node* node)
 void Drawable2D::OnNodeSet(Node* node)
 {
 {
     Drawable::OnNodeSet(node);
     Drawable::OnNodeSet(node);

+ 9 - 14
Source/Engine/Urho2D/Drawable2D.h

@@ -79,20 +79,17 @@ public:
     /// Return blend mode.
     /// Return blend mode.
     BlendMode GetBlendMode() const { return blendMode_; }
     BlendMode GetBlendMode() const { return blendMode_; }
 
 
-    /// Set default material.
-    void SetDefaultMaterial(Material* material);
-    /// Return default material.
-    Material* GetDefaultMaterial() const;
-    /// Set visibility.
+    /// Set material (called by Renderer2D).
+    void SetMaterial(Material* material);
+    /// Return material (called by Renderer2D).
+    Material* GetMaterial() const;
+    /// Set visibility (called by Renderer2D).
     void SetVisibility(bool visibility) { visibility_ = visibility; }
     void SetVisibility(bool visibility) { visibility_ = visibility; }
-    /// Return visibility.
+    /// Return visibility (called by Renderer2D).
     bool GetVisibility() const { return visibility_; }
     bool GetVisibility() const { return visibility_; }
-    /// Return all vertices.
+    /// Return all vertices (called by Renderer2D).
     const Vector<Vertex2D>& GetVertices();
     const Vector<Vertex2D>& GetVertices();
 
 
-    /// Set blend mode attribute.
-    void SetBlendModeAttr(BlendMode mode);
-
 protected:
 protected:
     /// Handle node being assigned.
     /// Handle node being assigned.
     virtual void OnNodeSet(Node* node);
     virtual void OnNodeSet(Node* node);
@@ -114,10 +111,8 @@ protected:
     Vector<Vertex2D> vertices_;
     Vector<Vertex2D> vertices_;
     /// Vertices dirty flag.
     /// Vertices dirty flag.
     bool verticesDirty_;
     bool verticesDirty_;
-    /// Material update pending flag.
-    bool materialUpdatePending_;
-    /// Default material.
-    SharedPtr<Material> defaultMaterial_;
+    /// Material.
+    SharedPtr<Material> material_;
     /// Test visible.
     /// Test visible.
     bool visibility_;
     bool visibility_;
 };
 };

+ 0 - 2
Source/Engine/Urho2D/ParticleEmitter2D.cpp

@@ -178,8 +178,6 @@ Sprite2D* ParticleEmitter2D::GetSprite() const
 
 
 void ParticleEmitter2D::SetParticleEffectAttr(const ResourceRef& value)
 void ParticleEmitter2D::SetParticleEffectAttr(const ResourceRef& value)
 {
 {
-    materialUpdatePending_ = true;
-
     ResourceCache* cache = GetSubsystem<ResourceCache>();
     ResourceCache* cache = GetSubsystem<ResourceCache>();
     SetEffect(cache->GetResource<ParticleEffect2D>(value.name_));
     SetEffect(cache->GetResource<ParticleEffect2D>(value.name_));
 }
 }

+ 29 - 28
Source/Engine/Urho2D/Renderer2D.cpp

@@ -34,10 +34,10 @@
 #include "Renderer2D.h"
 #include "Renderer2D.h"
 #include "Scene.h"
 #include "Scene.h"
 #include "Sort.h"
 #include "Sort.h"
+#include "Technique.h"
+#include "Texture2D.h"
 #include "VertexBuffer.h"
 #include "VertexBuffer.h"
 #include "WorkQueue.h"
 #include "WorkQueue.h"
-#include "Texture2D.h"
-#include "Technique.h"
 
 
 #include "DebugNew.h"
 #include "DebugNew.h"
 
 
@@ -185,7 +185,7 @@ static void CheckDrawableVisibility(const WorkItem* item, unsigned threadIndex)
     while (start != end)
     while (start != end)
     {
     {
         Drawable2D* drawable = *start++;
         Drawable2D* drawable = *start++;
-        if (renderer->CheckVisibility(drawable) && drawable->GetDefaultMaterial() && drawable->GetVertices().Size())
+        if (renderer->CheckVisibility(drawable) && drawable->GetMaterial() && drawable->GetVertices().Size())
             drawable->SetVisibility(true);
             drawable->SetVisibility(true);
         else
         else
             drawable->SetVisibility(false);
             drawable->SetVisibility(false);
@@ -200,8 +200,8 @@ static inline bool CompareDrawable2Ds(Drawable2D* lhs, Drawable2D* rhs)
     if (lhs->GetOrderInLayer() != rhs->GetOrderInLayer())
     if (lhs->GetOrderInLayer() != rhs->GetOrderInLayer())
         return lhs->GetOrderInLayer() < rhs->GetOrderInLayer();
         return lhs->GetOrderInLayer() < rhs->GetOrderInLayer();
 
 
-    Material* lhsUsedMaterial = lhs->GetDefaultMaterial();
-    Material* rhsUsedMaterial = rhs->GetDefaultMaterial();
+    Material* lhsUsedMaterial = lhs->GetMaterial();
+    Material* rhsUsedMaterial = rhs->GetMaterial();
     if (lhsUsedMaterial != rhsUsedMaterial)
     if (lhsUsedMaterial != rhsUsedMaterial)
         return lhsUsedMaterial->GetNameHash() < rhsUsedMaterial->GetNameHash();
         return lhsUsedMaterial->GetNameHash() < rhsUsedMaterial->GetNameHash();
 
 
@@ -222,12 +222,12 @@ void Renderer2D::HandleBeginViewUpdate(StringHash eventType, VariantMap& eventDa
     drawables_.Clear();
     drawables_.Clear();
     GetDrawables(drawables_, scene);
     GetDrawables(drawables_, scene);
 
 
-    // Set default material for Drawable2D.
+    // Check and set default material
     for (unsigned i = 0; i < drawables_.Size(); ++i)
     for (unsigned i = 0; i < drawables_.Size(); ++i)
     {
     {
         Drawable2D* drawable = drawables_[i];
         Drawable2D* drawable = drawables_[i];
-        if (!drawable->GetDefaultMaterial())
-            drawable->SetDefaultMaterial(GetMaterial(drawable->GetTexture(), drawable->GetBlendMode()));
+        if (!drawable->GetMaterial())
+            drawable->SetMaterial(GetMaterial(drawable->GetTexture(), drawable->GetBlendMode()));
     }
     }
 
 
     Sort(drawables_.Begin(), drawables_.End(), CompareDrawable2Ds);
     Sort(drawables_.Begin(), drawables_.End(), CompareDrawable2Ds);
@@ -241,6 +241,7 @@ void Renderer2D::HandleBeginViewUpdate(StringHash eventType, VariantMap& eventDa
         frustum_ = 0;
         frustum_ = 0;
     }
     }
 
 
+    // Check visibility
     {
     {
         PROFILE(CheckDrawableVisibility);
         PROFILE(CheckDrawableVisibility);
 
 
@@ -292,7 +293,7 @@ void Renderer2D::HandleBeginViewUpdate(StringHash eventType, VariantMap& eventDa
         if (!drawables_[d]->GetVisibility())
         if (!drawables_[d]->GetVisibility())
             continue;
             continue;
 
 
-        Material* usedMaterial = drawables_[d]->GetDefaultMaterial();
+        Material* usedMaterial = drawables_[d]->GetMaterial();
         const Vector<Vertex2D>& vertices = drawables_[d]->GetVertices();
         const Vector<Vertex2D>& vertices = drawables_[d]->GetVertices();
 
 
         if (material != usedMaterial)
         if (material != usedMaterial)
@@ -346,25 +347,6 @@ void Renderer2D::GetDrawables(PODVector<Drawable2D*>& dest, Node* node)
         GetDrawables(dest, i->Get());
         GetDrawables(dest, i->Get());
 }
 }
 
 
-void Renderer2D::AddBatch(Material* material, unsigned indexStart, unsigned indexCount, unsigned vertexStart, unsigned vertexCount)
-{
-    if (!material || indexCount == 0 || vertexCount == 0)
-        return;
-
-    materials_.Push(SharedPtr<Material>(material));
-
-    unsigned batchSize = materials_.Size();
-    if (geometries_.Size() < batchSize)
-    {
-        SharedPtr<Geometry> geometry(new Geometry(context_));
-        geometry->SetIndexBuffer(indexBuffer_);
-        geometry->SetVertexBuffer(0, vertexBuffer_, MASK_VERTEX2D);
-        geometries_.Push(geometry);
-    }
-
-    geometries_[batchSize - 1]->SetDrawRange(TRIANGLE_LIST, indexStart, indexCount, vertexStart, vertexCount, false);
-}
-
 Material* Renderer2D::GetMaterial(Texture2D* texture, BlendMode blendMode)
 Material* Renderer2D::GetMaterial(Texture2D* texture, BlendMode blendMode)
 {
 {
     HashMap<Texture2D*, HashMap<int, SharedPtr<Material> > >::Iterator t = cachedMaterials_.Find(texture);
     HashMap<Texture2D*, HashMap<int, SharedPtr<Material> > >::Iterator t = cachedMaterials_.Find(texture);
@@ -414,4 +396,23 @@ Material* Renderer2D::CreateMaterial(Texture2D* texture, BlendMode blendMode)
     return material;
     return material;
 }
 }
 
 
+void Renderer2D::AddBatch(Material* material, unsigned indexStart, unsigned indexCount, unsigned vertexStart, unsigned vertexCount)
+{
+    if (!material || indexCount == 0 || vertexCount == 0)
+        return;
+
+    materials_.Push(SharedPtr<Material>(material));
+
+    unsigned batchSize = materials_.Size();
+    if (geometries_.Size() < batchSize)
+    {
+        SharedPtr<Geometry> geometry(new Geometry(context_));
+        geometry->SetIndexBuffer(indexBuffer_);
+        geometry->SetVertexBuffer(0, vertexBuffer_, MASK_VERTEX2D);
+        geometries_.Push(geometry);
+    }
+
+    geometries_[batchSize - 1]->SetDrawRange(TRIANGLE_LIST, indexStart, indexCount, vertexStart, vertexCount, false);
+}
+
 }
 }

+ 3 - 3
Source/Engine/Urho2D/Renderer2D.h

@@ -62,12 +62,12 @@ private:
     void HandleBeginViewUpdate(StringHash eventType, VariantMap& eventData);
     void HandleBeginViewUpdate(StringHash eventType, VariantMap& eventData);
     /// Get all drawables in node.
     /// Get all drawables in node.
     void GetDrawables(PODVector<Drawable2D*>& drawables, Node* node);
     void GetDrawables(PODVector<Drawable2D*>& drawables, Node* node);
-    /// Add batch.
-    void AddBatch(Material* material, unsigned indexStart, unsigned indexCount, unsigned vertexStart, unsigned vertexCount);
     /// Return material by texture and blend mode.
     /// Return material by texture and blend mode.
     Material* GetMaterial(Texture2D* texture, BlendMode blendMode);
     Material* GetMaterial(Texture2D* texture, BlendMode blendMode);
-    /// Create material by texture and blend mode.
+    /// Create new material by texture and blend mode.
     Material* CreateMaterial(Texture2D* Texture, BlendMode blendMode);
     Material* CreateMaterial(Texture2D* Texture, BlendMode blendMode);
+    /// Add batch.
+    void AddBatch(Material* material, unsigned indexStart, unsigned indexCount, unsigned vertexStart, unsigned vertexCount);
 
 
     /// Index buffer.
     /// Index buffer.
     SharedPtr<IndexBuffer> indexBuffer_;
     SharedPtr<IndexBuffer> indexBuffer_;