@Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { // Set color's clear-value to black. gl.glClearColor(0f, 0f, 0f, 0f); // Set depth's clear-value to farthest. gl.glClearDepthf(1.0f); // Enables depth-buffer for hidden surface removal. gl.glEnable(GL10.GL_DEPTH_TEST); gl.glEnable(GL10.GL_BLEND); // The type of depth testing to do. gl.glDepthFunc(GL10.GL_LEQUAL); // Nice perspective view gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); // Enable smooth shading of color. gl.glShadeModel(GL10.GL_SMOOTH); // Selects blending method. gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); // Allows alpha channels or transperancy. gl.glEnable(GL10.GL_ALPHA_TEST); // Sets aplha function. gl.glAlphaFunc(GL10.GL_GREATER, 0.1f); // Enable texture. gl.glEnable(GL10.GL_TEXTURE_2D); // Load cube textures. photocube.loadTexture(gl); }
@Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); gl.glClearDepthf(1.0f); gl.glEnable(GLES20.GL_DEPTH_TEST); gl.glDepthFunc(GLES20.GL_LEQUAL); gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); gl.glShadeModel(GL10.GL_SMOOTH); gl.glDisable(GL10.GL_DITHER); textureCube.loadTexture(gl, context); gl.glEnable(GL10.GL_TEXTURE_2D); photoCube.loadTexture(gl); gl.glEnable(GL10.GL_TEXTURE_2D); gl.glLightfv(GL10.GL_LIGHT1, GL10.GL_AMBIENT, lightAmbient, 0); gl.glLightfv(GL10.GL_LIGHT1, GL10.GL_DIFFUSE, lightDiffuse, 0); gl.glLightfv(GL10.GL_LIGHT1, GL10.GL_POSITION, lightPosition, 0); gl.glEnable(GL10.GL_LIGHT1); gl.glEnable(GL10.GL_LIGHT0); gl.glColor4f(1.0f, 1.0f, 1.0f, 0.5f); gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE); }
@Override public void onDrawFrame(GL10 gl) { gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); if (lightingEnabled) { gl.glEnable(GL10.GL_LIGHTING); } else { gl.glDisable(GL10.GL_LIGHTING); } if (blendingEnabled) { gl.glEnable(GL10.GL_BLEND); gl.glDisable(GL10.GL_DEPTH_TEST); } else { gl.glDisable(GL10.GL_BLEND); gl.glEnable(GL10.GL_DEPTH_TEST); } gl.glLoadIdentity(); gl.glTranslatef(-1.5f, 0.0f, 0.0f); gl.glScalef(0.8f, 0.8f, 0.8f); // gl.glRotatef(anglePyramid, 1.0f, 1.0f, 1.0f); // triangle.draw(gl); // pyramid.draw(gl); gl.glTranslatef(0.0f, 0.0f, z); gl.glRotatef(angleX, 1.0f, 0.0f, 0.0f); gl.glRotatef(angleY, 0.0f, 1.0f, 0.0f); photoCube.draw(gl); angleX += speedX; angleY += speedY; gl.glLoadIdentity(); gl.glTranslatef(1.5f, 0.0f, -6.0f); // gl.glRotatef(angleSquare, 1.0f, 0.0f, 0.0f); gl.glTranslatef(3.0f, 0.0f, 0.0f); // square.draw(gl); // gl.glScalef(0.8f, 0.8f, 0.8f); // gl.glRotatef(angleCube, 1.0f, 1.0f, 1.0f); gl.glTranslatef(0.0f, 0.0f, z); gl.glRotatef(angleX, 1.0f, 0.0f, 0.0f); gl.glRotatef(angleY, 0.0f, 1.0f, 0.0f); textureCube.draw(gl, currentTextureFilter); angleX += speedX; angleY += speedY; anglePyramid += speedPyramid; angleCube += speedCube; // angleTriangle += speedTriangle; // angleSquare += speedSquare; }
@Override public void onDrawFrame(GL10 gl) { // Clear color and depth buffers using clear-value set earlier. gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); // Reset the model-view matrix. gl.glMatrixMode(GL10.GL_MODELVIEW); gl.glLoadIdentity(); // Translate into the screen depending on scale. gl.glTranslatef(0.0f, 0.0f, dragControl.getCurrentScale()); // Rotate depending on touch rotation. gl.glMultMatrixf(dragControl.currentRotation().toMatrix(), 0); // Draw the cube. photocube.draw(gl); }