Răsfoiți Sursa

Further improvement.

Wei Tjong Yao 12 ani în urmă
părinte
comite
37cd015353
3 a modificat fișierele cu 12 adăugiri și 4 ștergeri
  1. 1 4
      Engine/UI/Text.cpp
  2. 9 0
      Engine/UI/UIBatch.cpp
  3. 2 0
      Engine/UI/UIBatch.h

+ 1 - 4
Engine/UI/Text.cpp

@@ -185,10 +185,7 @@ void Text::GetBatches(PODVector<UIBatch>& batches, PODVector<UIQuad>& quads, con
         for (unsigned page = 0; page < face->textures_.Size(); ++page)
         {
             UIBatch batch(BLEND_ALPHA, currentScissor, face->textures_[page], &quads);
-            
-            for (PODVector<UIQuad>::ConstIterator i = pageQuads[page].Begin(); i != pageQuads[page].End(); ++i)
-                batch.AddQuad(*i);
-            
+            batch.AddQuad(pageQuads[page]);
             UIBatch::AddOrMerge(batch, batches);
         }
     }

+ 9 - 0
Engine/UI/UIBatch.cpp

@@ -128,6 +128,15 @@ void UIBatch::Begin(PODVector<UIQuad>* quads)
     quadCount_ = 0;
 }
 
+void UIBatch::AddQuad(const PODVector<UIQuad>& quads)
+{
+    if (!quads_ || quads.Empty())
+        return;
+    
+    *quads_ += quads;
+    quadCount_ += quads.Size();
+}
+
 void UIBatch::AddQuad(UIQuad quad)
 {
     if (!quads_)

+ 2 - 0
Engine/UI/UIBatch.h

@@ -86,6 +86,8 @@ public:
     
     /// Begin adding quads.
     void Begin(PODVector<UIQuad>* quads);
+    /// Add a collection of quads. Each quad is added without first checking whether it is properly defined.
+    void AddQuad(const PODVector<UIQuad>& quads);
     /// Add a quad.
     void AddQuad(UIQuad quad);
     /// Add a quad.