@Override public void draw(GL10 glUnused) { super.draw(glUnused); GLES20.glDisable(GLES20.GL_CULL_FACE); calcMVP(); GLES20.glUniformMatrix4fv(getUniform(ShaderVal.MVP_MATRIX), 1, false, MVP, 0); GLES20.glEnableVertexAttribArray(ShaderVal.POSITION.loc); GLES20.glVertexAttribPointer(ShaderVal.POSITION.loc, 3, GLES20.GL_FLOAT, false, 0, vertices); if (useVertexColors) { GLES20.glEnableVertexAttribArray(ShaderVal.ATTRIB_COLOR.loc); GLES20.glVertexAttribPointer( ShaderVal.ATTRIB_COLOR.loc, 4, GLES20.GL_FLOAT, false, 0, colors); } else { GLES20.glUniform4f( getUniform(ShaderVal.UNIFORM_COLOR), color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()); } GLES20.glDrawArrays(drawMode, 0, vertexCount); GLES20.glEnable(GLES20.GL_CULL_FACE); }
public GenericColoredShape(Camera cam, int drawMode, float[] vertices) { super(cam); this.drawMode = drawMode; this.vertices = Vertices.toFloatBuffer(vertices); this.colors = null; vertexCount = vertices.length / 3; useVertexColors = false; super.setProgram(GLSLProgram.FlatColor()); }
@Override public void draw(GL10 gl) { super.draw(gl); gl.glColor4f( getColor().getRed(), getColor().getGreen(), getColor().getBlue(), getColor().getAlpha()); gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertices); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glNormalPointer(GL10.GL_FLOAT, 0, normals); gl.glEnableClientState(GL10.GL_NORMAL_ARRAY); gl.glDrawElements(GL10.GL_TRIANGLE_STRIP, indices.limit(), GL10.GL_UNSIGNED_SHORT, indices); gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); gl.glDisableClientState(GL10.GL_NORMAL_ARRAY); }