From 7e3e35c7f2f54944414bd209f7a13717f625b582 Mon Sep 17 00:00:00 2001 From: "Kae..pl" Date: Thu, 8 Dec 2011 12:06:25 +0000 Subject: [PATCH] FIXED: Issue 428: Blender loader doesn't compress index buffers git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8898 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../plugins/blender/meshes/MeshHelper.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/engine/src/blender/com/jme3/scene/plugins/blender/meshes/MeshHelper.java b/engine/src/blender/com/jme3/scene/plugins/blender/meshes/MeshHelper.java index 4c7d0b1cf..8e9e6a04a 100644 --- a/engine/src/blender/com/jme3/scene/plugins/blender/meshes/MeshHelper.java +++ b/engine/src/blender/com/jme3/scene/plugins/blender/meshes/MeshHelper.java @@ -303,13 +303,20 @@ public class MeshHelper extends AbstractBlenderHelper { // creating vertices indices for this mesh List indexList = meshEntry.getValue(); - int[] indices = new int[indexList.size()]; - for (int i = 0; i < indexList.size(); ++i) { - indices[i] = indexList.get(i).intValue(); + if(verticesAmount < Short.MAX_VALUE * 2) { + short[] indices = new short[indexList.size()]; + for (int i = 0; i < indexList.size(); ++i) { + indices[i] = indexList.get(i).shortValue(); + } + mesh.setBuffer(Type.Index, 1, indices); + } else { + int[] indices = new int[indexList.size()]; + for (int i = 0; i < indexList.size(); ++i) { + indices[i] = indexList.get(i).intValue(); + } + mesh.setBuffer(Type.Index, 1, indices); } - - // setting vertices - mesh.setBuffer(Type.Index, 1, indices); + mesh.setBuffer(verticesBuffer); mesh.setBuffer(verticesBind);