|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.jme.scene.state.RenderState
public abstract class RenderState
RenderState
is the base class for all states that affect the
rendering of a piece of geometry. They aren't created directly, but are
created for users from the renderer. The renderstate of a parent affects its
children and it is OK to assign to more than one Spatial the same render
state.
Nested Class Summary | |
---|---|
static class |
RenderState.StateType
Enumerates every possible RenderState type. |
Field Summary | |
---|---|
static boolean[] |
QUICK_COMPARE
Deprecated. As of 2.0, use RenderState.StateType instead. |
static int |
RS_BLEND
Deprecated. As of 2.0, use RenderState.StateType.Blend |
static int |
RS_CLIP
Deprecated. As of 2.0, use RenderState.StateType.Clip |
static int |
RS_COLORMASK_STATE
Deprecated. As of 2.0, use RenderState.StateType.ColorMask |
static int |
RS_CULL
Deprecated. As of 2.0, use RenderState.StateType.Cull |
static int |
RS_FOG
Deprecated. As of 2.0, use RenderState.StateType#fog |
static int |
RS_FRAGMENT_PROGRAM
Deprecated. As of 2.0, use RenderState.StateType.FragmentProgram |
static int |
RS_GLSL_SHADER_OBJECTS
Deprecated. As of 2.0, use RenderState.StateType.GLSLShaderObjects |
static int |
RS_LIGHT
Deprecated. As of 2.0, use RenderState.StateType.Light |
static int |
RS_MATERIAL
Deprecated. As of 2.0, use RenderState.StateType.Material |
static int |
RS_MAX_STATE
Deprecated. As of 2.0, use RenderState.StateType |
static int |
RS_SHADE
Deprecated. As of 2.0, use RenderState.StateType.Shade |
static int |
RS_STENCIL
Deprecated. As of 2.0, use RenderState.StateType.Stencil |
static int |
RS_TEXTURE
Deprecated. As of 2.0, use RenderState.StateType.Texture |
static int |
RS_VERTEX_PROGRAM
Deprecated. As of 2.0, use RenderState.StateType.VertexProgram |
static int |
RS_WIREFRAME
Deprecated. As of 2.0, use RenderState.StateType.Wireframe |
static int |
RS_ZBUFFER
Deprecated. As of 2.0, use RenderState.StateType.ZBuffer |
Constructor Summary | |
---|---|
RenderState()
Construts a new RenderState. |
Method Summary | |
---|---|
abstract void |
apply()
This function is defined in the RenderState that is actually used by the Renderer. |
abstract StateRecord |
createStateRecord()
|
RenderState |
extract(java.util.Stack<? extends RenderState> stack,
Spatial spat)
Extracts from the stack the correct renderstate that should apply to the given spatial. |
java.lang.Class<?> |
getClassTag()
|
abstract RenderState.StateType |
getStateType()
Defined by the subclass, this returns a StateType value identifying the renderstate. |
abstract int |
getType()
Deprecated. Use getStateType() instead. |
boolean |
isEnabled()
Returns if this render state is enabled during rendering. |
boolean |
needsRefresh()
|
void |
read(JMEImporter e)
|
void |
setEnabled(boolean value)
Sets if this render state is enabled during rendering. |
void |
setNeedsRefresh(boolean refresh)
This should be called by states when it knows internal data has been altered. |
static void |
setQuickCompares(boolean enabled)
|
void |
write(JMEExporter e)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int RS_BLEND
RenderState.StateType.Blend
public static final int RS_FOG
RenderState.StateType#fog
public static final int RS_LIGHT
RenderState.StateType.Light
public static final int RS_MATERIAL
RenderState.StateType.Material
public static final int RS_SHADE
RenderState.StateType.Shade
public static final int RS_TEXTURE
RenderState.StateType.Texture
public static final int RS_WIREFRAME
RenderState.StateType.Wireframe
public static final int RS_ZBUFFER
RenderState.StateType.ZBuffer
public static final int RS_CULL
RenderState.StateType.Cull
public static final int RS_VERTEX_PROGRAM
RenderState.StateType.VertexProgram
public static final int RS_FRAGMENT_PROGRAM
RenderState.StateType.FragmentProgram
public static final int RS_STENCIL
RenderState.StateType.Stencil
public static final int RS_GLSL_SHADER_OBJECTS
RenderState.StateType.GLSLShaderObjects
public static final int RS_COLORMASK_STATE
RenderState.StateType.ColorMask
public static final int RS_CLIP
RenderState.StateType.Clip
public static final int RS_MAX_STATE
RenderState.StateType
public static boolean[] QUICK_COMPARE
RenderState.StateType
instead.If false, each renderstate of that type is always applied in the renderer and only field by field checks are done to minimize jni overhead. This is slower than setting to true, but relieves the programmer from situations where he has to remember to update the needsRefresh field of a state.
If true, each renderstate of that type is checked for == with the last applied renderstate of the same type. If same and the state's needsRefresh method returns false, then application of the renderstate is skipped. This can be much faster than setting false, but in certain circumstances, the programmer must manually set needsRefresh (for example, in a FogState, if you call getFogColor().set(....) to change the color, the fogstate will not set the needsRefresh field. In non-quick compare mode, this is not a problem because it will go into the apply method and do an actual check of the current fog color in opengl vs. the color in the state being applied.)
DEFAULTS:
Constructor Detail |
---|
public RenderState()
Method Detail |
---|
public abstract int getType()
getStateType()
instead.
public abstract RenderState.StateType getStateType()
public boolean isEnabled()
public void setEnabled(boolean value)
value
- False if the state is to be disabled, true otherwise.public abstract void apply()
public RenderState extract(java.util.Stack<? extends RenderState> stack, Spatial spat)
stack
- The stack to extract render states from.spat
- The spatial to apply the render states too.
public void write(JMEExporter e) throws java.io.IOException
write
in interface Savable
java.io.IOException
public void read(JMEImporter e) throws java.io.IOException
read
in interface Savable
java.io.IOException
public java.lang.Class<?> getClassTag()
getClassTag
in interface Savable
public abstract StateRecord createStateRecord()
public boolean needsRefresh()
public void setNeedsRefresh(boolean refresh)
refresh
- true if we should apply this state even if we think it is the
current state of its type in the current context.public static void setQuickCompares(boolean enabled)
enabled
- QUICK_COMPARE
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |