Переглянути джерело

- Fixed issue introduced in last change of Mesh write method. Hardware Skinning buffers were not properly ignored at save time in some rare cases, and were causing a crash

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10697 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
rem..om 12 роки тому
батько
коміт
93aa3cd37b
1 змінених файлів з 15 додано та 19 видалено
  1. 15 19
      engine/src/core/com/jme3/scene/Mesh.java

+ 15 - 19
engine/src/core/com/jme3/scene/Mesh.java

@@ -1329,29 +1329,25 @@ public class Mesh implements Savable, Cloneable {
         //Removing HW skinning buffers to not save them
         VertexBuffer hwBoneIndex = null;
         VertexBuffer hwBoneWeight = null;
-        if (isAnimated()) {
-            hwBoneIndex = getBuffer(Type.HWBoneIndex);
-            if (hwBoneIndex != null) {
-                buffers.remove(Type.HWBoneIndex.ordinal());
-            }
-            hwBoneWeight = getBuffer(Type.HWBoneWeight);
-            if (hwBoneWeight != null) {
-                buffers.remove(Type.HWBoneWeight.ordinal());
-            }
+        hwBoneIndex = getBuffer(Type.HWBoneIndex);
+        if (hwBoneIndex != null) {
+            buffers.remove(Type.HWBoneIndex.ordinal());
         }
-        
+        hwBoneWeight = getBuffer(Type.HWBoneWeight);
+        if (hwBoneWeight != null) {
+            buffers.remove(Type.HWBoneWeight.ordinal());
+        }
+
         out.writeIntSavableMap(buffers, "buffers", null);
-        
+
         //restoring Hw skinning buffers.
-        if (isAnimated()) {
-            if (hwBoneIndex != null) {
-                buffers.put(hwBoneIndex.getBufferType().ordinal(), hwBoneIndex);               
-            }            
-            if (hwBoneWeight != null) {
-                buffers.put(hwBoneWeight.getBufferType().ordinal(), hwBoneWeight);                 
-            }
+        if (hwBoneIndex != null) {
+            buffers.put(hwBoneIndex.getBufferType().ordinal(), hwBoneIndex);
         }
-        
+        if (hwBoneWeight != null) {
+            buffers.put(hwBoneWeight.getBufferType().ordinal(), hwBoneWeight);
+        }
+
         out.write(lodLevels, "lodLevels", null);
     }