Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. public void draw(GL10 gl) {
  2. gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); // bind texture
  3.  
  4. gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
  5. gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);
  6. gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
  7. gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  8.  
  9. for(int i=0; i<parts.size(); i++){
  10. TDModelPart t=parts.get(i);
  11. Material m=t.getMaterial();
  12. if(m!=null){
  13. FloatBuffer a=m.getAmbientColorBuffer();
  14. FloatBuffer d=m.getDiffuseColorBuffer();
  15. FloatBuffer s=m.getSpecularColorBuffer();
  16. gl.glMaterialfv(GL10.GL_FRONT_AND_BACK,GL10.GL_AMBIENT,a);
  17. gl.glMaterialfv(GL10.GL_FRONT_AND_BACK,GL10.GL_SPECULAR,s);
  18. gl.glMaterialfv(GL10.GL_FRONT_AND_BACK,GL10.GL_DIFFUSE,d);
  19. }
  20. gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
  21. gl.glNormalPointer(GL10.GL_FLOAT, 0, t.getNormalBuffer());
  22. gl.glDrawElements(GL10.GL_TRIANGLES,t.getFacesCount(),GL10.GL_UNSIGNED_SHORT,t.getFaceBuffer());
  23. gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
  24. gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  25. }
  26.  
  27. }
  28.  
  29. public void loadGLTexture(GL10 gl, Context context) {
  30. // loading texture
  31. InputStream is = null;
  32. Bitmap bitmap = null;
  33. try {
  34. is = context.getAssets().open("banana.jpg");
  35.  
  36. bitmap = BitmapFactory.decodeStream(is);
  37. } catch (IOException e) {
  38. e.printStackTrace();
  39. }
  40.  
  41. gl.glGenTextures(1, textures, 0);
  42. // ...and bind it to our array
  43. gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
  44.  
  45. // create nearest filtered texture
  46. gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
  47. gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
  48.  
  49. gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
  50. gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
  51.  
  52. // Use Android GLUtils to specify a two-dimensional texture image from our bitmap
  53. GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
  54.  
  55. // Clean up
  56. bitmap.recycle();
  57. }
  58.  
  59. public void onSurfaceCreated(GL10 gl, EGLConfig config) {
  60.  
  61. model.loadGLTexture(gl, getContext()); // load texture
  62.  
  63. gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_AMBIENT, lightAmbientBuffer);
  64. gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, lightDiffuseBuffer);
  65. gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_POSITION, lightPositionBuffer);
  66. gl.glEnable(GL10.GL_LIGHT0);
  67.  
  68. gl.glEnable(GL10.GL_TEXTURE_2D); // Enable texture
  69. gl.glShadeModel(GL10.GL_SMOOTH);
  70. gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
  71. gl.glClearDepthf(1.0f);
  72. gl.glEnable(GL10.GL_DEPTH_TEST);
  73. gl.glDepthFunc(GL10.GL_LEQUAL);
  74.  
  75. gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement