diff --git a/assets/shaders/vertex.glsl b/assets/shaders/vertex.glsl index d61ce54..42ea59e 100644 --- a/assets/shaders/vertex.glsl +++ b/assets/shaders/vertex.glsl @@ -1,11 +1,12 @@ uniform mat4 projection; +uniform mat4 modelview; attribute vec3 pos; attribute vec3 color; varying vec3 color_i; void main() { - gl_Position = projection * vec4(pos * 0.75, 1); + gl_Position = projection * modelview * vec4(pos * 0.75, 1); color_i = color; } diff --git a/src/com/homelinux/holtrop/opengltest/MyGLSurfaceView.java b/src/com/homelinux/holtrop/opengltest/MyGLSurfaceView.java index 9821f24..92c4e39 100644 --- a/src/com/homelinux/holtrop/opengltest/MyGLSurfaceView.java +++ b/src/com/homelinux/holtrop/opengltest/MyGLSurfaceView.java @@ -13,7 +13,5 @@ public class MyGLSurfaceView extends GLSurfaceView setEGLContextClientVersion(2); setRenderer(new MyRenderer(am)); - - setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); } } diff --git a/src/com/homelinux/holtrop/opengltest/MyRenderer.java b/src/com/homelinux/holtrop/opengltest/MyRenderer.java index b8ae47f..c3bbf19 100644 --- a/src/com/homelinux/holtrop/opengltest/MyRenderer.java +++ b/src/com/homelinux/holtrop/opengltest/MyRenderer.java @@ -15,6 +15,7 @@ import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; import android.opengl.Matrix; +import android.os.SystemClock; public class MyRenderer implements GLSurfaceView.Renderer { @@ -23,6 +24,7 @@ public class MyRenderer implements GLSurfaceView.Renderer private FloatBuffer m_quad_attrib_buffer; private AssetManager m_asset_manager; private float m_proj_matrix[] = new float[16]; + private float m_modelview[] = new float[16]; public MyRenderer(AssetManager am) { @@ -115,7 +117,12 @@ public class MyRenderer implements GLSurfaceView.Renderer { 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_color = GLES20.glGetAttribLocation(m_program, "color"); GLES20.glEnableVertexAttribArray(attr_pos);