Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void draw(GL10 gl) {
- gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); // bind texture
- gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
- gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);
- gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
- gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
- for(int i=0; i<parts.size(); i++){
- TDModelPart t=parts.get(i);
- Material m=t.getMaterial();
- if(m!=null){
- FloatBuffer a=m.getAmbientColorBuffer();
- FloatBuffer d=m.getDiffuseColorBuffer();
- FloatBuffer s=m.getSpecularColorBuffer();
- gl.glMaterialfv(GL10.GL_FRONT_AND_BACK,GL10.GL_AMBIENT,a);
- gl.glMaterialfv(GL10.GL_FRONT_AND_BACK,GL10.GL_SPECULAR,s);
- gl.glMaterialfv(GL10.GL_FRONT_AND_BACK,GL10.GL_DIFFUSE,d);
- }
- gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
- gl.glNormalPointer(GL10.GL_FLOAT, 0, t.getNormalBuffer());
- gl.glDrawElements(GL10.GL_TRIANGLES,t.getFacesCount(),GL10.GL_UNSIGNED_SHORT,t.getFaceBuffer());
- gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
- gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
- }
- }
- public void loadGLTexture(GL10 gl, Context context) {
- // loading texture
- InputStream is = null;
- Bitmap bitmap = null;
- try {
- is = context.getAssets().open("banana.jpg");
- bitmap = BitmapFactory.decodeStream(is);
- } catch (IOException e) {
- e.printStackTrace();
- }
- gl.glGenTextures(1, textures, 0);
- // ...and bind it to our array
- gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
- // create nearest filtered texture
- gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
- gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
- gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
- gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
- // Use Android GLUtils to specify a two-dimensional texture image from our bitmap
- GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
- // Clean up
- bitmap.recycle();
- }
- public void onSurfaceCreated(GL10 gl, EGLConfig config) {
- model.loadGLTexture(gl, getContext()); // load texture
- gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_AMBIENT, lightAmbientBuffer);
- gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, lightDiffuseBuffer);
- gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_POSITION, lightPositionBuffer);
- gl.glEnable(GL10.GL_LIGHT0);
- gl.glEnable(GL10.GL_TEXTURE_2D); // Enable texture
- gl.glShadeModel(GL10.GL_SMOOTH);
- gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
- gl.glClearDepthf(1.0f);
- gl.glEnable(GL10.GL_DEPTH_TEST);
- gl.glDepthFunc(GL10.GL_LEQUAL);
- gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement