Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.

Paste

Pasted as Java by Redalin ( 14 years ago )
I have this functions:
 public void draw(GL10 gl) {
  // bind the previously generated texture
  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
 

  // Point to our buffers
  gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
  gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

  // Set the face rotation
  gl.glFrontFace(GL10.GL_CW);

  // Point to our vertex buffer
  gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
  gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);
  

  // Draw the vertices as triangle strip
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length / 3);

  //Disable the client state before leaving
  gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
  gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
 }


public void loadGLTexture(GL10 gl, Context context,int resourceId ) {
  // loading texture
  Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
    resourceId);

  // generate one texture pointer
  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_REPEAT);
  gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT);

  // 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();
 }


And then this code on my OpenGL Renderer:


public void onDrawFrame(GL10 gl) {
  // clear Screen and Depth Buffer
  gl.glEnable(GL10.GL_TEXTURE_2D);
  gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

  // Reset the Modelview Matrix
  gl.glLoadIdentity();

  // Drawing
  gl.glTranslatef(0.0f, 0.0f, -5.0f);  // move 5 units INTO the screen
  //square.loadGLTexture(gl, this.context,Square.getSex());
  gl.glBindTexture(GL10.GL_TEXTURE_2D,R.drawable.girl_dress_01);
  gl.glBindTexture(GL10.GL_TEXTURE_2D,Square.getSex());
  square.loadGLTexture(gl, this.context,GL10.GL_TEXTURE_2D);// is the same as moving the camera 5 units away
  square.draw(gl);      // Draw the triangle

 }


I get this error: 06-28 10:10:24.052: E/AndroidRuntime(400): java.lang.NullPointerException: texImage2D can't be used with a null Bitmap

What can i do?

 

Revise this Paste

Your Name: Code Language: