Difference between pygame.display.update and pygame.display.flip

50,998

Solution 1

The main difference between pygame.display.flip and pygame.display.update is, that

  • display.flip() will update the contents of the entire display
  • display.update() allows to update a portion of the screen, instead of the entire area of the screen. Passing no arguments, updates the entire display

To tell PyGame which portions of the screen it should update (i.e. draw on your monitor) you can pass a single pygame.Rect object, or a sequence of them to the display.update() function. A Rect in PyGame stores a width and a height as well as a x- and y-coordinate for the position.

PyGame's built-in dawning functions and the .blit() method for instance return a Rect, so you can simply pass it to the display.update() function in order to update only the "new" drawn area.

Due to the fact that display.update() only updates certain portions of the whole screen in comparison to display.flip(), display.update() is faster in most cases.

Solution 2

Flip will always update the entire screen. Update also update the entire screen, if you don't give argument. But if you give surface(s) as arguments, it will update only these surfaces. So it can be faster, depending on how many surfaces you give it and their width and height.

Solution 3

  • pygame.display.flip() updates the whole screen.
  • pygame.display.update() updates only specific section but with no arguments works similar to the pygame.display.flip().
Share:
50,998
Yubin Lee
Author by

Yubin Lee

I was a high school student interested in robotics and computer programming. Currently, I am an undergrad student at KAIST, majoring in CS.

Updated on July 17, 2022

Comments

  • Yubin Lee
    Yubin Lee almost 2 years

    Just like the title implies, is there any difference? I was using pygame.display.flip and I saw on the Internet that instead of using flip they used pygame.display.update. Which one is faster?

  • Yubin Lee
    Yubin Lee about 9 years
    So if I have more than 1 surface object, update will be faster than flip ?
  • lain
    lain about 9 years
    Imagine you have an image and you blit it. Instead of updating the whole screen, if you update the surface corresponding to the image, it will be faster (if the image is smaller than the screen).
  • Robo Robok
    Robo Robok over 3 years
    I wonder why they didn't just make it update() with optional arguments.
  • Maximus
    Maximus over 3 years
    Because flip might actually work faster due to the use of OpenGL/hardware acceleration. For example, for a simple loop with 3 sprites on a MacBook Pro 2019, pygame's flip gives "insane" 6 FPS compared to 3 FPS for an update of rect regions.