drawing quad, but using pos as color
This commit is contained in:
parent
51564fcede
commit
d1b87e3ec6
@ -12,9 +12,9 @@ import android.util.Log;
|
|||||||
|
|
||||||
public class MyRenderer implements GLSurfaceView.Renderer
|
public class MyRenderer implements GLSurfaceView.Renderer
|
||||||
{
|
{
|
||||||
private int m_quad_attrib_buffer;
|
|
||||||
private int m_program;
|
private int m_program;
|
||||||
private final String DBGTAG = "JoshsOpenGL";
|
private final String DBGTAG = "JoshsOpenGL";
|
||||||
|
private FloatBuffer m_quad_attrib_buffer;
|
||||||
|
|
||||||
public void checkGLError(String glOperation)
|
public void checkGLError(String glOperation)
|
||||||
{
|
{
|
||||||
@ -54,16 +54,9 @@ public class MyRenderer implements GLSurfaceView.Renderer
|
|||||||
checkGLError("onSurfaceCreated");
|
checkGLError("onSurfaceCreated");
|
||||||
ByteBuffer bb = ByteBuffer.allocateDirect(attribs.length * 4);
|
ByteBuffer bb = ByteBuffer.allocateDirect(attribs.length * 4);
|
||||||
bb.order(ByteOrder.nativeOrder());
|
bb.order(ByteOrder.nativeOrder());
|
||||||
FloatBuffer fb = bb.asFloatBuffer();
|
m_quad_attrib_buffer = bb.asFloatBuffer();
|
||||||
fb.put(attribs);
|
m_quad_attrib_buffer.put(attribs);
|
||||||
fb.position(0);
|
m_quad_attrib_buffer.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);
|
|
||||||
|
|
||||||
final String v_shader_src =
|
final String v_shader_src =
|
||||||
"attribute vec3 pos;" +
|
"attribute vec3 pos;" +
|
||||||
@ -101,7 +94,6 @@ public class MyRenderer implements GLSurfaceView.Renderer
|
|||||||
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
|
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
GLES20.glUseProgram(m_program);
|
GLES20.glUseProgram(m_program);
|
||||||
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, m_quad_attrib_buffer);
|
|
||||||
checkGLError("glBindBuffer");
|
checkGLError("glBindBuffer");
|
||||||
int attr_pos = GLES20.glGetAttribLocation(m_program, "pos");
|
int attr_pos = GLES20.glGetAttribLocation(m_program, "pos");
|
||||||
int attr_color = GLES20.glGetAttribLocation(m_program, "color");
|
int attr_color = GLES20.glGetAttribLocation(m_program, "color");
|
||||||
@ -109,9 +101,9 @@ public class MyRenderer implements GLSurfaceView.Renderer
|
|||||||
GLES20.glEnableVertexAttribArray(attr_color);
|
GLES20.glEnableVertexAttribArray(attr_color);
|
||||||
checkGLError("glEnableVertexAttribArray");
|
checkGLError("glEnableVertexAttribArray");
|
||||||
GLES20.glVertexAttribPointer(attr_pos, 3, GLES20.GL_FLOAT, false,
|
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,
|
GLES20.glVertexAttribPointer(attr_color, 3, GLES20.GL_FLOAT, false,
|
||||||
6 * 4, 3 * 4);
|
6 * 4, m_quad_attrib_buffer);
|
||||||
checkGLError("glVertexAttribPointer");
|
checkGLError("glVertexAttribPointer");
|
||||||
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_FAN, 0, 4);
|
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_FAN, 0, 4);
|
||||||
checkGLError("glDrawArrays");
|
checkGLError("glDrawArrays");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user