- 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
3.0
rem..om 12 years ago
parent e58d47c28d
commit 93aa3cd37b
  1. 4
      engine/src/core/com/jme3/scene/Mesh.java

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

Loading…
Cancel
Save