Added a method to manually clean up any Terrain lod control threads.
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10877 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
61c3d27942
commit
fe1f90dbf6
@ -156,6 +156,16 @@ public class TerrainLodControl extends AbstractControl {
|
||||
updateLOD(cameraLocations, lodCalculator);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this when you remove the terrain or this control from the scene.
|
||||
* It will clear up any threads it had.
|
||||
*/
|
||||
public void detachAndCleanUpControl() {
|
||||
if (executor != null)
|
||||
executor.shutdownNow();
|
||||
getSpatial().removeControl(this);
|
||||
}
|
||||
|
||||
// do all of the LOD calculations
|
||||
protected void updateLOD(List<Vector3f> locations, LodCalculator lodCalculator) {
|
||||
|
@ -220,8 +220,8 @@ public class TerrainTestAdvanced extends SimpleApplication {
|
||||
inputManager.addListener(actionListener, "triPlanar");
|
||||
inputManager.addMapping("WardIso", new KeyTrigger(KeyInput.KEY_9));
|
||||
inputManager.addListener(actionListener, "WardIso");
|
||||
inputManager.addMapping("Minnaert", new KeyTrigger(KeyInput.KEY_0));
|
||||
inputManager.addListener(actionListener, "Minnaert");
|
||||
inputManager.addMapping("DetachControl", new KeyTrigger(KeyInput.KEY_0));
|
||||
inputManager.addListener(actionListener, "DetachControl");
|
||||
}
|
||||
private ActionListener actionListener = new ActionListener() {
|
||||
|
||||
@ -253,6 +253,15 @@ public class TerrainTestAdvanced extends SimpleApplication {
|
||||
matTerrain.setFloat("DiffuseMap_3_scale", rockScale);
|
||||
matTerrain.setFloat("DiffuseMap_4_scale", rockScale);
|
||||
}
|
||||
} if (name.equals("DetachControl") && !pressed) {
|
||||
TerrainLodControl control = terrain.getControl(TerrainLodControl.class);
|
||||
if (control != null)
|
||||
control.detachAndCleanUpControl();
|
||||
else {
|
||||
control = new TerrainLodControl(terrain, cam);
|
||||
terrain.addControl(control);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user