draw both sides of tile as its rotating

This commit is contained in:
Josh Holtrop 2012-12-01 09:58:41 -05:00
parent 20953f9141
commit 13ee04baea

View File

@ -169,6 +169,7 @@ public class MyRenderer implements GLSurfaceView.Renderer
*/
GLES20.glClearColor(1.0f, 0.6f, 0.1f, 1.0f);
GLES20.glEnable(GLES20.GL_CULL_FACE);
}
private void update_tiles(long elapsed)
@ -219,6 +220,11 @@ public class MyRenderer implements GLSurfaceView.Renderer
for (int x = 0; x < GRID_WIDTH; x++)
{
Tile t = m_tiles[x][y];
for (int side = 0; side < 2; side++)
{
int t_side = t.side ? 1 : 0;
if (!t.flipping && (side == 1))
continue;
Matrix.setIdentityM(m_modelview, 0);
Matrix.translateM(m_modelview, 0,
x + 0.5f - GRID_WIDTH / 2.0f,
@ -227,7 +233,7 @@ public class MyRenderer implements GLSurfaceView.Renderer
if (t.flipping)
{
Matrix.rotateM(m_modelview, 0,
t.rotation,
t.rotation + side * 180.0f,
AXES[t.axis][0], AXES[t.axis][1], AXES[t.axis][2]);
}
GLES20.glUniformMatrix4fv(
@ -235,12 +241,13 @@ public class MyRenderer implements GLSurfaceView.Renderer
1, false, m_modelview, 0);
GLES20.glUniform1i(
GLES20.glGetUniformLocation(m_program, "side"),
t.side ? 1 : 0);
t_side ^ side);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_FAN, 0, 4);
checkGLError("glDrawArrays");
}
}
}
GLES20.glDisableVertexAttribArray(attr_pos);
GLES20.glDisableVertexAttribArray(attr_color);