From ac51e1d885b352b1ce7d2a095f49b01842406be1 Mon Sep 17 00:00:00 2001 From: "bre..om" Date: Fri, 8 Nov 2013 17:43:50 +0000 Subject: [PATCH] Allow a custom Executor to be passed to the TerrainLodControl git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10880 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../jme3/terrain/geomipmap/TerrainLodControl.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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() {