Actually I was giving rect args to update. My objects are static and do not overlap, so it makes sense to render only the small portions of the screen that change. update without arguments does NOT behave as flip, btw. With update, my graphics are not displayed properly. I also figured out that the clear(screen, background) for sprite groups should not be used, you have to clear the whole screen instead: self.screen.blit(self.background,[0,0]). Updating the screen with directx and doublebuf is an all-or-nothing thing it seems.
So, though it's not the most elegant solution, I got it working at least. Thanks to all you guys, without your assistance I would have gone mad puzzling around ;-)) 2009/2/1 Jake b <[email protected]>: > http://www.pygame.org/docs/ref/display.html#pygame.display.flip > AFAIK: .flip() acts like .update() with no arguments. > flip() must be called if it's a doublebuffered surface, or, OpenGL. ( So if > you are not giving args, you might as well call flip instead ) > [ Find + replace in files makes it a single action. ] > > On Sun, Feb 1, 2009 at 8:37 AM, Matthias Treder > <[email protected]> wrote: >> >> I have a Geforce Go 7600. There seems to be smth with the drivers >> indeed: I installed the latest nvidia drivers, and when I use >> pygame.DOUBLEBUF|pygame.FULLSCREEN there's no tearing (irrespective of >> whether I use SWSURFACE or HWSURFACE). It does not sync in windowed >> mode, but fullscreen is fine. >> >> However, with these settings a new problem arises: Graphics are only >> properly displayed if I use pygame.flip(). When I use pygame.update() >> either nothing appears or the animation is not as intended. Does only >> flip() but not update() wait for a vertical retrace, as it seems to be >> indicated in the docu? >> Does it mean I have to change all my update()s to flip()s now?
