package rajawali.materials;
import android.graphics.Color;
import android.opengl.GLES20;
import com.monyetmabuk.livewallpapers.photosdof.R;
public class ToonMaterial extends DiffuseMaterial {
protected int muToonColor0Handle, muToonColor1Handle, muToonColor2Handle, muToonColor3Handle;
protected float[] mToonColor0, mToonColor1, mToonColor2, mToonColor3;
public ToonMaterial() {
this(false);
}
public ToonMaterial(boolean isAnimated) {
super(R.raw.diffuse_material_vertex, R.raw.toon_material_fragment, isAnimated);
mToonColor0 = new float[] { 1, .5f, .5f, 1 };
mToonColor1 = new float[] { .6f, .3f, .3f, 1 };
mToonColor2 = new float[] { .4f, .2f, .2f, 1 };
mToonColor3 = new float[] { .2f, .1f, .1f, 1 };
}
@Override
public void useProgram() {
super.useProgram();
GLES20.glUniform4fv(muToonColor0Handle, 1, mToonColor0, 0);
GLES20.glUniform4fv(muToonColor1Handle, 1, mToonColor1, 0);
GLES20.glUniform4fv(muToonColor2Handle, 1, mToonColor2, 0);
GLES20.glUniform4fv(muToonColor3Handle, 1, mToonColor3, 0);
}
@Override
public void setShaders(String vertexShader, String fragmentShader)
{
super.setShaders(vertexShader, fragmentShader);
muToonColor0Handle = getUniformLocation("uToonColor0");
muToonColor1Handle = getUniformLocation("uToonColor1");
muToonColor2Handle = getUniformLocation("uToonColor2");
muToonColor3Handle = getUniformLocation("uToonColor3");
}
public void setToonColors(int color0, int color1, int color2, int color3) {
mToonColor0[0] = Color.red(color0);
mToonColor0[1] = Color.green(color0);
mToonColor0[2] = Color.blue(color0);
mToonColor0[3] = Color.alpha(color0);
mToonColor1[0] = Color.red(color1);
mToonColor1[1] = Color.green(color1);
mToonColor1[2] = Color.blue(color1);
mToonColor1[3] = Color.alpha(color1);
mToonColor2[0] = Color.red(color2);
mToonColor2[1] = Color.green(color2);
mToonColor2[2] = Color.blue(color2);
mToonColor2[3] = Color.alpha(color2);
mToonColor3[0] = Color.red(color3);
mToonColor3[1] = Color.green(color3);
mToonColor3[2] = Color.blue(color3);
mToonColor3[3] = Color.alpha(color3);
}
}