Important: Please read the Qt Code of Conduct -

QGLWidget update(rect) always returns entire rect in paintEvent

  • I have a simple painting app using a QGLWidget that I am calling update(rect) on, passing in a rect that is much smaller than the rect of the QGLWidget. I use a QImage to draw into, and then in the paintEvent, I draw a portion of that to the QGLWidget. When I put a break point on the paintEvent method, and call event->rect() or event->region().rects(), it returns the entire rect of the QGLWidget. I would have expected it to return only the rect that was passed to the update method.

    As a consequence, drawing on my iPhone is horribly laggy.

    Here is my code:

    If you scroll to the bottom of the pastebin, you will see my logging code where I am logging which rect I draw (draw rect) to and then later which rect comes back in the paint event (update rect).

Log in to reply