Advertisement
Guest User

Memory leak in GraCard

a guest
Jan 22nd, 2013
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. QImage GLWidget::getImage(void){
  2. QGLPixelBuffer *buffer = new QGLPixelBuffer(mStartImage.width(),mStartImage.height());
  3. buffer->makeCurrent();
  4. initializeGL();
  5. QImage image = paintGL(buffer);
  6. glDeleteLists(mIndex, 1);
  7. buffer->doneCurrent();
  8. delete(buffer);
  9. return image;
  10. }
  11.  
  12. void GLWidget::initializeGL(void){
  13. glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
  14. glClear(GL_COLOR_BUFFER_BIT);
  15. glEnable(GL_TEXTURE_2D);
  16. glViewport(0, 0, mWidth, mHeight);
  17. glMatrixMode(GL_PROJECTION);
  18. glOrtho(-mHeightHalf*1.77777, mHeightHalf*1.77777, -mHeightHalf, mHeightHalf,
  19. 500.0, -500.0);
  20. glMatrixMode(GL_MODELVIEW);
  21.  
  22. mIndex = glGenLists(1);
  23. glNewList(mIndex, GL_COMPILE);
  24. glBegin(GL_QUADS);
  25. glTexCoord2f(0.0, 0.0);
  26. glVertex2f( -mWidthHalf, -mHeightHalf);
  27.  
  28. glTexCoord2f(1.0,0.0);
  29. glVertex2f( mWidthHalf, -mHeightHalf);
  30.  
  31. glTexCoord2f(1.0, 1.0);
  32. glVertex2f( mWidthHalf, mHeightHalf);
  33.  
  34. glTexCoord2f(0.0,1.0);
  35. glVertex2f(-mWidthHalf, mHeightHalf);
  36. glEnd();
  37. glEndList();
  38. }
  39.  
  40. QImage GLWidget::paintGL(QGLPixelBuffer *buffer){
  41. glLoadIdentity();
  42. glPushMatrix();
  43.  
  44. mEndImageTexture = buffer->bindTexture(mEndImage,GL_TEXTURE_2D);
  45. glCallList(mIndex);
  46. glPopMatrix();
  47. glPushMatrix();
  48. float value = pow(1.6,mFactor-10)+1;
  49. glScalef(1.0/value, 1.0/value, 1.0/value);
  50.  
  51. mStartImageTexture = buffer->bindTexture(mStartImage,GL_TEXTURE_2D);
  52. glCallList(mIndex);
  53. glPopMatrix();
  54. #if 0
  55. buffer->deleteTexture(mStartImageTexture);
  56. buffer->deleteTexture(mEndImageTexture);
  57. #endif
  58. glFlush();
  59. QImage image = buffer->toImage();
  60. return image;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement