Code example for GL10

Methods: glClear, glColorPointer, glDrawElements, glEnable, glEnableClientState, glFrontFace, glLoadIdentity, glMatrixMode, glMultMatrixf, glShadeModel

0
            } 
        } 
 
        public void onDrawFrame(GL10 gl) {
            // clear screen 
            gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
 
            // set-up modelview matrix 
            gl.glMatrixMode(GL10.GL_MODELVIEW);
            gl.glLoadIdentity();
            gl.glTranslatef(0, 0, -3.0f);
            gl.glMultMatrixf(mRotationMatrix, 0);
 
            // draw our object 
            gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
            gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
 
            mCube.draw(gl);
        } 
 
        public void onSurfaceChanged(GL10 gl, int width, int height) {
            // set view-port 
            gl.glViewport(0, 0, width, height);
            // set projection matrix 
            float ratio = (float) width / height;
            gl.glMatrixMode(GL10.GL_PROJECTION);
            gl.glLoadIdentity();
            gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
        } 
 
        public void onSurfaceCreated(GL10 gl, EGLConfig config) {
            // dither is enabled by default, we don't need it 
            gl.glDisable(GL10.GL_DITHER);
            // clear screen in white 
            gl.glClearColor(1,1,1,1);
        } 
 
        class Cube { 
            // initialize our cube 
            private FloatBuffer mVertexBuffer;
            private FloatBuffer mColorBuffer;
            private ByteBuffer  mIndexBuffer;
 
            public Cube() { 
                final float vertices[] = {
                        -1, -1, -1,		 1, -1, -1, 
                         1,  1, -1,	    -1,  1, -1, 
                        -1, -1,  1,      1, -1,  1, 
                         1,  1,  1,     -1,  1,  1, 
                }; 
 
                final float colors[] = {
                        0,  0,  0,  1,  1,  0,  0,  1, 
                        1,  1,  0,  1,  0,  1,  0,  1, 
                        0,  0,  1,  1,  1,  0,  1,  1, 
                        1,  1,  1,  1,  0,  1,  1,  1, 
                }; 
 
                final byte indices[] = {
                        0, 4, 5,    0, 5, 1, 
                        1, 5, 6,    1, 6, 2, 
                        2, 6, 7,    2, 7, 3, 
                        3, 7, 4,    3, 4, 0, 
                        4, 7, 6,    4, 6, 5, 
                        3, 0, 1,    3, 1, 2 
                }; 
 
                ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length*4);
                vbb.order(ByteOrder.nativeOrder());
                mVertexBuffer = vbb.asFloatBuffer();
                mVertexBuffer.put(vertices);
                mVertexBuffer.position(0);
 
                ByteBuffer cbb = ByteBuffer.allocateDirect(colors.length*4);
                cbb.order(ByteOrder.nativeOrder());
                mColorBuffer = cbb.asFloatBuffer();
                mColorBuffer.put(colors);
                mColorBuffer.position(0);
 
                mIndexBuffer = ByteBuffer.allocateDirect(indices.length);
                mIndexBuffer.put(indices);
                mIndexBuffer.position(0);
            } 
 
            public void draw(GL10 gl) {
                gl.glEnable(GL10.GL_CULL_FACE);
                gl.glFrontFace(GL10.GL_CW);
                gl.glShadeModel(GL10.GL_SMOOTH);
                gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer);
                gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);
                gl.glDrawElements(GL10.GL_TRIANGLES, 36, GL10.GL_UNSIGNED_BYTE, mIndexBuffer);
            }             
        } 
 
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
        }