From 8a4b2041544ce80bd82f139d7c6d86add14775a9 Mon Sep 17 00:00:00 2001 From: "rem..om" Date: Sat, 22 Dec 2012 15:20:26 +0000 Subject: [PATCH] fixed issue 461 http://code.google.com/p/jmonkeyengine/issues/detail?id=461&can=5&q=label%3AProduct-jME3&sort=priority&colspec=ID%20Type%20Status%20Component%20Priority%20Difficulty%20Product%20Milestone%20Owner%20Summary BatchNode now use an instanceof Geometry statement to know if the spatial can be batched. It Then check the BatchHint on this spatial. ParticleEmitter, BitmapTextPage and TerrainPatch extends Geometry and should not be batched so their batchHint has been defaulted to Never. Image also extend Geomety but it may be useful to batch images. git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10040 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- engine/src/core/com/jme3/effect/ParticleEmitter.java | 3 ++- engine/src/core/com/jme3/font/BitmapTextPage.java | 2 +- engine/src/core/com/jme3/scene/BatchNode.java | 2 +- .../src/terrain/com/jme3/terrain/geomipmap/TerrainPatch.java | 3 +++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/engine/src/core/com/jme3/effect/ParticleEmitter.java b/engine/src/core/com/jme3/effect/ParticleEmitter.java index 871a916f6..f68f574aa 100644 --- a/engine/src/core/com/jme3/effect/ParticleEmitter.java +++ b/engine/src/core/com/jme3/effect/ParticleEmitter.java @@ -194,7 +194,7 @@ public class ParticleEmitter extends Geometry { public ParticleEmitter(String name, Type type, int numParticles) { super(name); - + setBatchHint(BatchHint.Never); // ignore world transform, unless user sets inLocalSpace this.setIgnoreTransform(true); @@ -235,6 +235,7 @@ public class ParticleEmitter extends Geometry { */ public ParticleEmitter() { super(); + setBatchHint(BatchHint.Never); } public void setShape(EmitterShape shape) { diff --git a/engine/src/core/com/jme3/font/BitmapTextPage.java b/engine/src/core/com/jme3/font/BitmapTextPage.java index 1e89866d2..1edac967c 100644 --- a/engine/src/core/com/jme3/font/BitmapTextPage.java +++ b/engine/src/core/com/jme3/font/BitmapTextPage.java @@ -59,7 +59,7 @@ class BitmapTextPage extends Geometry { BitmapTextPage(BitmapFont font, boolean arrayBased, int page) { super("BitmapFont", new Mesh()); - + setBatchHint(BatchHint.Never); if (font == null) { throw new IllegalArgumentException("font cannot be null."); } diff --git a/engine/src/core/com/jme3/scene/BatchNode.java b/engine/src/core/com/jme3/scene/BatchNode.java index b57c5a566..4c9d47271 100644 --- a/engine/src/core/com/jme3/scene/BatchNode.java +++ b/engine/src/core/com/jme3/scene/BatchNode.java @@ -247,7 +247,7 @@ public class BatchNode extends Node implements Savable { private void gatherGeomerties(Map> map, Spatial n, boolean rebatch) { - if (n.getClass() == Geometry.class) { + if (n instanceof Geometry) { if (!isBatch(n) && n.getBatchHint() != BatchHint.Never) { Geometry g = (Geometry) n; diff --git a/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainPatch.java b/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainPatch.java index 52e414fa7..3e3e0fb64 100644 --- a/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainPatch.java +++ b/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainPatch.java @@ -113,10 +113,12 @@ public class TerrainPatch extends Geometry { public TerrainPatch() { super("TerrainPatch"); + setBatchHint(BatchHint.Never); } public TerrainPatch(String name) { super(name); + setBatchHint(BatchHint.Never); } public TerrainPatch(String name, int size) { @@ -171,6 +173,7 @@ public class TerrainPatch extends Geometry { float[] heightMap, Vector3f origin, int totalSize, Vector2f offset, float offsetAmount) { super(name); + setBatchHint(BatchHint.Never); this.size = size; this.stepScale = stepScale; this.totalSize = totalSize;