Преглед изворни кода

Update SpritePacker.cpp

to guarantee best results, either: "stbrp_init_target", the forth parameter need either:
     1. make sure 'num_nodes' >= 'width'
or  2. call stbrp_allow_out_of_mem() defined below with 'allow_out_of_mem = 1'
error408 пре 6 година
родитељ
комит
fb866a87fd
1 измењених фајлова са 5 додато и 11 уклоњено
  1. 5 11
      Source/Tools/SpritePacker/SpritePacker.cpp

+ 5 - 11
Source/Tools/SpritePacker/SpritePacker.cpp

@@ -289,19 +289,13 @@ void Run(Vector<String>& arguments)
 
             stbrp_context packerContext;
             stbrp_node packerMemory[PACKER_NUM_NODES];
-            stbrp_init_target(&packerContext, textureWidth, textureHeight, packerMemory, packerInfos.Size());
-            stbrp_pack_rects(&packerContext, packerRects, packerInfos.Size());
-
-            // check to see if everything fit
-            for (unsigned i = 0; i < packerInfos.Size(); ++i)
+            stbrp_init_target(&packerContext, textureWidth, textureHeight, packerMemory, PACKER_NUM_NODES);
+            if (!stbrp_pack_rects(&packerContext, packerRects, packerInfos.Size()))
             {
-                stbrp_rect* packerRect = &packerRects[i];
-                if (!packerRect->was_packed)
-                {
-                    fit = false;
-                    break;
-                }
+                // check to see if everything fit
+                fit = false;
             }
+
             if (fit)
             {
                 success = true;