public interface AppState
AppState
can track when it is attached to the
AppStateManager
or when it is detached.
AppState
s are initialized in the render thread, upon a call to
initialize(com.jme3.app.state.AppStateManager, com.jme3.app.Application)
and are de-initialized upon a call to cleanup()
.
Implementations should return the correct value with a call to
isInitialized()
as specified above.initialize()
will be called
on the following render pass.
cleanup()
will be called
on the following render pass.
AppState
then the second attach
is a no-op and will return false.
AppState
within one frame then
neither initialize()
or cleanup()
will be called,
although if either is called both will be.
AppState
within one frame
then on the next update pass its cleanup()
and initialize()
methods will be called in that order.
Modifier and Type | Method and Description |
---|---|
void |
cleanup()
Called by
AppStateManager when transitioning this
AppState from terminating to detached. |
java.lang.String |
getId()
Returns the unique ID for this AppState or null if it has no
unique ID.
|
void |
initialize(AppStateManager stateManager,
Application app)
Called by
AppStateManager when transitioning this AppState
from initializing to running.This will happen on the next iteration through the update loop after AppStateManager.attach(com.jme3.app.state.AppState) was called. |
boolean |
isEnabled() |
boolean |
isInitialized() |
void |
postRender()
Called after all rendering commands are flushed.
|
void |
render(RenderManager rm)
Render the state.
|
void |
setEnabled(boolean active)
Enable or disable the functionality of the
AppState . |
void |
stateAttached(AppStateManager stateManager)
Called by
AppStateManager.attach(com.jme3.app.state.AppState)
when transitioning this
AppState from detached to initializing. |
void |
stateDetached(AppStateManager stateManager)
Called by
AppStateManager.detach(com.jme3.app.state.AppState)
when transitioning this
AppState from running to terminating. |
void |
update(float tpf)
Called to update the
AppState . |
void initialize(AppStateManager stateManager, Application app)
AppStateManager
when transitioning this AppState
from initializing to running.AppStateManager.attach(com.jme3.app.state.AppState)
was called.
AppStateManager
will call this only from the update loop
inside the rendering thread. This means is it safe to modify the scene
graph from this method.
stateManager
- The state managerapp
- The applicationboolean isInitialized()
initialize()
was called on the state,
false otherwise.java.lang.String getId()
void setEnabled(boolean active)
AppState
.
The effect of this call depends on implementation. An
AppState
starts as being enabled by default.
A disabled AppState
s does not get calls to
update(float)
, render(RenderManager)
, or
postRender()
from its AppStateManager
.active
- activate the AppState or not.boolean isEnabled()
AppState
is enabled, false otherwise.setEnabled(boolean)
void stateAttached(AppStateManager stateManager)
AppStateManager.attach(com.jme3.app.state.AppState)
when transitioning this
AppState
from detached to initializing.
There is no assumption about the thread from which this function is
called, therefore it is unsafe to modify the scene graph
from this method. Please use
initialize(com.jme3.app.state.AppStateManager, com.jme3.app.Application)
instead.
stateManager
- State manager to which the state was attached to.void stateDetached(AppStateManager stateManager)
AppStateManager.detach(com.jme3.app.state.AppState)
when transitioning this
AppState
from running to terminating.
There is no assumption about the thread from which this function is
called, therefore it is unsafe to modify the scene graph
from this method. Please use
cleanup()
instead.
stateManager
- The state manager from which the state was detached from.void update(float tpf)
AppState
. This method will be called
every render pass if the AppState
is both attached and enabled.tpf
- Time since the last call to update(), in seconds.void render(RenderManager rm)
AppState
is both attached and enabled.rm
- RenderManagervoid postRender()
AppState
is both attached and enabled.void cleanup()
AppStateManager
when transitioning this
AppState
from terminating to detached. This
method is called the following render pass after the AppState
has
been detached and is always called once and only once for each time
initialize()
is called. Either when the AppState
is detached or when the application terminates (if it terminates normally).