* Fixed issue where attaching scene to viewport does not force it to update

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9568 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
Sha..rd 13 years ago
parent c02b24da12
commit 5497fcc7e6
  1. 2
      engine/src/core/com/jme3/renderer/ViewPort.java
  2. 21
      engine/src/core/com/jme3/scene/Spatial.java

@ -290,6 +290,7 @@ public class ViewPort {
throw new IllegalArgumentException( "Scene cannot be null." );
}
sceneList.add(scene);
scene.forceRefresh(true, false, true);
}
/**
@ -304,6 +305,7 @@ public class ViewPort {
throw new IllegalArgumentException( "Scene cannot be null." );
}
sceneList.remove(scene);
scene.forceRefresh(true, false, true);
}
/**

@ -119,6 +119,7 @@ public abstract class Spatial implements Savable, Cloneable, Collidable, Cloneab
protected static final int RF_TRANSFORM = 0x01, // need light resort + combine transforms
RF_BOUND = 0x02,
RF_LIGHTLIST = 0x04; // changes in light lists
protected CullHint cullHint = CullHint.Inherit;
protected BatchHint batchHint = BatchHint.Inherit;
/**
@ -213,7 +214,6 @@ public abstract class Spatial implements Savable, Cloneable, Collidable, Cloneab
protected void setBoundRefresh() {
refreshFlags |= RF_BOUND;
// XXX: Replace with a recursive call?
Spatial p = parent;
while (p != null) {
if ((p.refreshFlags & RF_BOUND) != 0) {
@ -225,6 +225,25 @@ public abstract class Spatial implements Savable, Cloneable, Collidable, Cloneab
}
}
/**
* (Internal use only) Forces a refresh of the given types of data.
*
* @param transforms Refresh world transform based on parents'
* @param bounds Refresh bounding volume data based on child nodes
* @param lights Refresh light list based on parents'
*/
public void forceRefresh(boolean transforms, boolean bounds, boolean lights) {
if (transforms) {
setTransformRefresh();
}
if (bounds) {
setBoundRefresh();
}
if (lights) {
setLightListRefresh();
}
}
/**
* <code>checkCulling</code> checks the spatial with the camera to see if it
* should be culled.

Loading…
Cancel
Save