Android Open Source - fun-gl Color Shader From Project Back to project page fun-gl .
License The source code is released under:
Apache License
If you think the Android project fun-gl listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.jcxavier.android.opengl.engine.shader;
/ / w w w . j a v a 2 s . c o m
import com.jcxavier.android.opengl.math.Vector4;
import static android.opengl.GLES20.*;
import static com.jcxavier.android.opengl.engine.cache.GLState.cachedGlVertexAttribArraySize;
import static com.jcxavier.android.opengl.util.Constants.FLOAT_SIZE;
/**
* Created on 11/03/2014.
*
* @author Joo Xavier <jcxavier@jcxavier.com>
*/
public class ColorShader extends Shader {
// 4 bytes position * FLOAT_SIZE
private static final int STRIDE = 4 * FLOAT_SIZE;
private int mUniformLocationMVPMatrix;
private int mUniformLocationColor;
public ColorShader() {
mAttributesArray = new String[] { "a_Position" };
mUniformMapping.put("u_MVPMatrix" , null);
mUniformMapping.put("u_Color" , null);
}
@Override
public int getAttributeBufferSize() {
return STRIDE;
}
@Override
public void setAttributePointers() {
cachedGlVertexAttribArraySize(1);
glVertexAttribPointer(0, 4, GL_FLOAT, false, STRIDE, 0);
}
@Override
protected void onUniformLocationsAvailable() {
mUniformLocationMVPMatrix = mUniformMapping.get("u_MVPMatrix" );
mUniformLocationColor = mUniformMapping.get("u_Color" );
}
public void setMVPMatrixUniform(final float [] matrix) {
glUniformMatrix4fv(mUniformLocationMVPMatrix, 1, false, matrix, 0);
}
public void setColorUniform(final Vector4 color) {
glUniform4f(mUniformLocationColor, color.x, color.y, color.z, color.w);
}
@Override
protected String getVertexShader() {
return "" +
"attribute highp vec4 a_Position;\n" +
"\n" +
"uniform highp mat4 u_MVPMatrix;\n" +
"uniform lowp vec4 u_Color;\n" +
"\n" +
"varying lowp vec4 v_Color;\n" +
"\n" +
"void main() {\n" +
" gl_Position = u_MVPMatrix * a_Position;\n" +
" v_Color = u_Color;\n" +
"}\n" ;
}
@Override
protected String getFragmentShader() {
return "" +
"varying lowp vec4 v_Color;\n" +
"\n" +
"void main() {\n" +
" gl_FragColor = v_Color;\n" +
"}\n" ;
}
}
Java Source Code List com.jcxavier.android.opengl.engine.BitmapConfigHelper.java com.jcxavier.android.opengl.engine.EngineActivity.java com.jcxavier.android.opengl.engine.EngineRenderer.java com.jcxavier.android.opengl.engine.EngineView.java com.jcxavier.android.opengl.engine.RendererOptions.java com.jcxavier.android.opengl.engine.cache.GLState.java com.jcxavier.android.opengl.engine.gdx.GdxEglConfigChooser.java com.jcxavier.android.opengl.engine.shader.ColorShader.java com.jcxavier.android.opengl.engine.shader.ShaderManager.java com.jcxavier.android.opengl.engine.shader.Shader.java com.jcxavier.android.opengl.engine.shader.TextureShader.java com.jcxavier.android.opengl.engine.texture.TextureFilteringMode.java com.jcxavier.android.opengl.engine.texture.TextureManager.java com.jcxavier.android.opengl.engine.texture.TextureWrap.java com.jcxavier.android.opengl.engine.texture.Texture.java com.jcxavier.android.opengl.engine.type.RotationMode.java com.jcxavier.android.opengl.file.FileManager.java com.jcxavier.android.opengl.game.GameStage.java com.jcxavier.android.opengl.game.SimpleGameStage.java com.jcxavier.android.opengl.game.camera.Camera.java com.jcxavier.android.opengl.game.camera.DefaultCamera.java com.jcxavier.android.opengl.game.camera.OrthographicCamera.java com.jcxavier.android.opengl.game.manager.GameManager.java com.jcxavier.android.opengl.game.manager.ScreenManager.java com.jcxavier.android.opengl.game.manager.input.InputHandler.java com.jcxavier.android.opengl.game.manager.input.InputManager.java com.jcxavier.android.opengl.game.object.DrawableObject.java com.jcxavier.android.opengl.game.object.GameObject.java com.jcxavier.android.opengl.game.object.Sprite.java com.jcxavier.android.opengl.game.type.Resizeable.java com.jcxavier.android.opengl.game.type.Touchable.java com.jcxavier.android.opengl.game.type.Transformable.java com.jcxavier.android.opengl.game.type.Updateable.java com.jcxavier.android.opengl.math.IVector.java com.jcxavier.android.opengl.math.Matrix4.java com.jcxavier.android.opengl.math.Vector2.java com.jcxavier.android.opengl.math.Vector3.java com.jcxavier.android.opengl.math.Vector4.java com.jcxavier.android.opengl.sample.GameActivity.java com.jcxavier.android.opengl.sample.TestStage.java com.jcxavier.android.opengl.util.BitmapUtils.java com.jcxavier.android.opengl.util.Constants.java com.jcxavier.android.opengl.util.ReflectionUtils.java com.jcxavier.android.opengl.util.WeakList.java com.sample.clean.TestActivity.java com.sample.clean.TestStage.java