/Research/Example projects/android2.1_TestOGL/src/com/example/atogl/GLTutorialTwelve.java

https://bitbucket.org/DeveloperUX/behaviortree · Java · 90 lines · 64 code · 26 blank · 0 comment · 0 complexity · 372c948032230ae55c642b7f0e23a34a MD5 · raw file

  1. package com.example.atogl;
  2. import javax.microedition.khronos.opengles.GL10;
  3. import android.content.Context;
  4. import android.opengl.GLU;
  5. public class GLTutorialTwelve extends GLTutorialBase {
  6. float lightAmbient[] = new float[] { 0.2f, 0.2f, 0.2f, 1.0f };
  7. float lightDiffuse[] = new float[] { 1f, 1f, 1f, 1.0f };
  8. float[] lightPos = new float[] {0,0,3,1};
  9. float matAmbient[] = new float[] { 1f, 1f, 1f, 1.0f };
  10. float matDiffuse[] = new float[] { 1f, 1f, 1f, 1.0f };
  11. int light_tex;
  12. int block_tex;
  13. public GLTutorialTwelve(Context c) {
  14. super(c, 20);
  15. }
  16. protected void init(GL10 gl) {
  17. gl.glEnable(GL10.GL_LIGHTING);
  18. gl.glEnable(GL10.GL_LIGHT0);
  19. gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, matAmbient, 0);
  20. gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, matDiffuse, 0);
  21. gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_AMBIENT, lightAmbient, 0);
  22. gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, lightDiffuse, 0);
  23. gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_POSITION, lightPos, 0);
  24. gl.glEnable(GL10.GL_DEPTH_TEST);
  25. gl.glDepthFunc(GL10.GL_LEQUAL);
  26. gl.glEnable(GL10.GL_TEXTURE_2D);
  27. gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  28. gl.glClearDepthf(1.0f);
  29. gl.glEnable(GL10.GL_CULL_FACE);
  30. gl.glShadeModel(GL10.GL_SMOOTH);
  31. light_tex = loadTexture(gl, R.drawable.light);
  32. block_tex = loadTexture(gl, R.drawable.block);
  33. }
  34. float xrot = 0.0f;
  35. float yrot = 0.0f;
  36. public void onDrawFrame(GL10 gl) {
  37. gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
  38. gl.glMatrixMode(GL10.GL_MODELVIEW);
  39. setupCube(gl);
  40. gl.glLoadIdentity();
  41. GLU.gluLookAt(gl, 0, 0, 3, 0, 0, 0, 0, 1, 0);
  42. gl.glRotatef(xrot, 1, 0, 0);
  43. gl.glRotatef(yrot, 0, 1, 0);
  44. gl.glMatrixMode(GL10.GL_MODELVIEW);
  45. gl.glActiveTexture(GL10.GL_TEXTURE0);
  46. gl.glClientActiveTexture(GL10.GL_TEXTURE0);
  47. gl.glEnable(GL10.GL_TEXTURE_2D);
  48. gl.glBindTexture(GL10.GL_TEXTURE_2D, light_tex);
  49. gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  50. gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, texBuff);
  51. gl.glActiveTexture(GL10.GL_TEXTURE1);
  52. gl.glClientActiveTexture(GL10.GL_TEXTURE1);
  53. gl.glEnable(GL10.GL_TEXTURE_2D);
  54. gl.glBindTexture(GL10.GL_TEXTURE_2D, block_tex);
  55. gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  56. gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, texBuff);
  57. gl.glTexEnvx(GL10.GL_TEXTURE_ENV , GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE);
  58. drawCube(gl);
  59. gl.glActiveTexture(GL10.GL_TEXTURE0);
  60. gl.glClientActiveTexture(GL10.GL_TEXTURE0);
  61. xrot += 1.0f;
  62. yrot += 0.5f;
  63. }
  64. }