drawing quad, but using pos as color

This commit is contained in:
Josh Holtrop 2012-11-06 22:03:35 -05:00
parent 51564fcede
commit d1b87e3ec6

View File

@ -12,9 +12,9 @@ import android.util.Log;
public class MyRenderer implements GLSurfaceView.Renderer
{
private int m_quad_attrib_buffer;
private int m_program;
private final String DBGTAG = "JoshsOpenGL";
private FloatBuffer m_quad_attrib_buffer;
public void checkGLError(String glOperation)
{
@ -54,16 +54,9 @@ public class MyRenderer implements GLSurfaceView.Renderer
checkGLError("onSurfaceCreated");
ByteBuffer bb = ByteBuffer.allocateDirect(attribs.length * 4);
bb.order(ByteOrder.nativeOrder());
FloatBuffer fb = bb.asFloatBuffer();
fb.put(attribs);
fb.position(0);
int[] buffers = {0};
GLES20.glGenBuffers(1, buffers, 0);
checkGLError("glGenBuffers");
m_quad_attrib_buffer = buffers[0];
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, m_quad_attrib_buffer);
GLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, 0, fb,
GLES20.GL_STATIC_DRAW);
m_quad_attrib_buffer = bb.asFloatBuffer();
m_quad_attrib_buffer.put(attribs);
m_quad_attrib_buffer.position(0);
final String v_shader_src =
"attribute vec3 pos;" +
@ -101,7 +94,6 @@ public class MyRenderer implements GLSurfaceView.Renderer
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
GLES20.glUseProgram(m_program);
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, m_quad_attrib_buffer);
checkGLError("glBindBuffer");
int attr_pos = GLES20.glGetAttribLocation(m_program, "pos");
int attr_color = GLES20.glGetAttribLocation(m_program, "color");
@ -109,9 +101,9 @@ public class MyRenderer implements GLSurfaceView.Renderer
GLES20.glEnableVertexAttribArray(attr_color);
checkGLError("glEnableVertexAttribArray");
GLES20.glVertexAttribPointer(attr_pos, 3, GLES20.GL_FLOAT, false,
6 * 4, 0);
6 * 4, m_quad_attrib_buffer);
GLES20.glVertexAttribPointer(attr_color, 3, GLES20.GL_FLOAT, false,
6 * 4, 3 * 4);
6 * 4, m_quad_attrib_buffer);
checkGLError("glVertexAttribPointer");
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_FAN, 0, 4);
checkGLError("glDrawArrays");