2013-08-12 13:30:54 +10:00
|
|
|
package codechicken.lib.render;
|
|
|
|
|
|
|
|
|
|
import codechicken.lib.colour.ColourRGBA;
|
|
|
|
|
|
2014-04-07 14:02:47 +10:00
|
|
|
public class ColourMultiplier implements CCRenderState.IVertexOperation
|
2013-08-12 13:30:54 +10:00
|
|
|
{
|
2014-04-07 14:02:47 +10:00
|
|
|
private static ColourMultiplier instance = new ColourMultiplier(-1);
|
|
|
|
|
|
|
|
|
|
public static ColourMultiplier instance(int colour) {
|
|
|
|
|
instance.colour = colour;
|
|
|
|
|
return instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static final int operationIndex = CCRenderState.registerOperation();
|
|
|
|
|
public int colour;
|
|
|
|
|
|
|
|
|
|
public ColourMultiplier(int colour) {
|
2013-08-12 13:30:54 +10:00
|
|
|
this.colour = colour;
|
|
|
|
|
}
|
2014-04-07 14:02:47 +10:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean load() {
|
|
|
|
|
if(colour == -1)
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
CCRenderState.pipeline.addDependency(CCRenderState.colourAttrib);
|
|
|
|
|
return true;
|
2013-08-12 13:30:54 +10:00
|
|
|
}
|
2014-04-07 14:02:47 +10:00
|
|
|
|
2013-08-12 13:30:54 +10:00
|
|
|
@Override
|
2014-04-07 14:02:47 +10:00
|
|
|
public void operate() {
|
|
|
|
|
CCRenderState.setColour(ColourRGBA.multiply(CCRenderState.colour, colour));
|
2013-08-12 13:30:54 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2014-04-07 14:02:47 +10:00
|
|
|
public int operationID() {
|
|
|
|
|
return operationIndex;
|
2013-08-12 13:30:54 +10:00
|
|
|
}
|
|
|
|
|
}
|