Blame |
Last modification |
View Log
| RSS feed
package com.gebauz.pingK.common.framework.renderstates;
/** RenderStates
* Manage render states, tracking changes, supporting locking, and applying state switches only if necessary.
* Usage example:
* renderStates.blending.setBlendingMode(BlendingStates.BlendingMode.MULTIPLY);
* // ... set other render states
* renderStates.activate();
* // ...render object...
* renderStates.deactivate();
* @author chris
*
*/
public class RenderStates
{
public BlendingStates blending = new BlendingStates(this);
public CullingStates culling = new CullingStates(this);
public DepthTestStates depthTest = new DepthTestStates(this);
private TextureStage mTextureStage0 = new TextureStage(this, 0);
// private TextureStage mTextureStage1 = new TextureStage(this, 1);
private boolean mLocked = false;
public RenderStates()
{
}
public void initialize()
{
blending.initialize();
culling.initialize();
depthTest.initialize();
mTextureStage0.initialize();
// mTextureStage1.initialize();
}
public void activate()
{
activate(false);
}
public void activate(boolean force)
{
blending.activate(force);
culling.activate(force);
depthTest.activate(force);
}
public void reset()
{
blending.reset();
culling.reset();
depthTest.reset();
}
public void deactivate()
{
reset();
activate(false);
}
public boolean isLocked()
{
return mLocked;
}
public void lock(boolean lock)
{
mLocked = lock;
}
public final TextureStage getTextureStage(int index)
{
return mTextureStage0;
}
}