spinning quad!

This commit is contained in:
Josh Holtrop 2012-11-09 22:03:03 -05:00
parent 3450798278
commit 65b4301c71
3 changed files with 10 additions and 4 deletions

View File

@ -1,11 +1,12 @@
uniform mat4 projection; uniform mat4 projection;
uniform mat4 modelview;
attribute vec3 pos; attribute vec3 pos;
attribute vec3 color; attribute vec3 color;
varying vec3 color_i; varying vec3 color_i;
void main() void main()
{ {
gl_Position = projection * vec4(pos * 0.75, 1); gl_Position = projection * modelview * vec4(pos * 0.75, 1);
color_i = color; color_i = color;
} }

View File

@ -13,7 +13,5 @@ public class MyGLSurfaceView extends GLSurfaceView
setEGLContextClientVersion(2); setEGLContextClientVersion(2);
setRenderer(new MyRenderer(am)); setRenderer(new MyRenderer(am));
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
} }
} }

View File

@ -15,6 +15,7 @@ import java.io.InputStreamReader;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import android.opengl.Matrix; import android.opengl.Matrix;
import android.os.SystemClock;
public class MyRenderer implements GLSurfaceView.Renderer public class MyRenderer implements GLSurfaceView.Renderer
{ {
@ -23,6 +24,7 @@ public class MyRenderer implements GLSurfaceView.Renderer
private FloatBuffer m_quad_attrib_buffer; private FloatBuffer m_quad_attrib_buffer;
private AssetManager m_asset_manager; private AssetManager m_asset_manager;
private float m_proj_matrix[] = new float[16]; private float m_proj_matrix[] = new float[16];
private float m_modelview[] = new float[16];
public MyRenderer(AssetManager am) public MyRenderer(AssetManager am)
{ {
@ -115,7 +117,12 @@ public class MyRenderer implements GLSurfaceView.Renderer
{ {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
checkGLError("glBindBuffer"); long time = SystemClock.uptimeMillis() % 4000L;
float angle = 0.090f * ((int) time);
Matrix.setRotateM(m_modelview, 0, angle, 0, 0, 1);
GLES20.glUniformMatrix4fv(
GLES20.glGetUniformLocation(m_program, "modelview"),
1, false, m_modelview, 0);
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");
GLES20.glEnableVertexAttribArray(attr_pos); GLES20.glEnableVertexAttribArray(attr_pos);