diff --git a/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainLodControl.java b/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainLodControl.java index 506659690..96bedc21f 100644 --- a/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainLodControl.java +++ b/engine/src/terrain/com/jme3/terrain/geomipmap/TerrainLodControl.java @@ -73,6 +73,11 @@ import java.util.logging.Logger; * This camera reference has to be manually added in when you load the * terrain to the scene! * + * When the control or the terrain are removed from the scene, you should call + * TerrainLodControl.detachAndCleanUpControl() to remove any threads it created + * to handle the LOD processing. If you supply your own executor service, then + * you have to handle its thread termination yourself. + * * @author Brent Owens */ public class TerrainLodControl extends AbstractControl { @@ -119,6 +124,14 @@ public class TerrainLodControl extends AbstractControl { @Override protected void controlRender(RenderManager rm, ViewPort vp) { } + + /** + * Set your own custom executor to be used. The control will use + * this instead of creating its own. + */ + public void setExecutor(ExecutorService executor) { + this.executor = executor; + } protected ExecutorService createExecutorService() { return Executors.newSingleThreadExecutor(new ThreadFactory() {