Hi. I am using Windows XP and setting SDL_VIDEODRIVER solves the framerate problem, but the mouse cursor is strange. If I remove the flags pygame.DOUBLEBUF and pygame.HWSURFACE of the display.set_mode function the mouse cursor is a little better.
What may be the problem? Thanks for your help. Pedro. On Fri, Jun 6, 2008 at 11:20 PM, René Dudfield <[EMAIL PROTECTED]> wrote: > hi again, > > I modified my original change... because vista still uses platform as > 2 like nt/2000/xp. So I also checked the major number of the platform > was < 6 - since vista is less than 6. > > cheers, > > On Sat, Jun 7, 2008 at 12:01 PM, René Dudfield <[EMAIL PROTECTED]> wrote: > > hi, > > > > yeah, I'm pretty sure this is the case... usually blitting is the slow > > part - and with most older computers, directx is the fast path. > > There's also been a couple of other reports of 1.8 being slower on > > their computers... > > > > I've committed something for lib/__init__.py ... that uses directx > > for older windows versions. It's untested so far, I'll boot up my > > windows machines and see if it works there. I can only test on xp, > > and vista at the moment. > > > > > > These should run on older versions of windows. > > > > ---- > > import pygame, os > > assert(os.environ.get('SDL_VIDEODRIVER', '') == 'directx') > > > > > > > > ------ this one should respect the driver set by the user. > > import os > > os.environ['SDL_VIDEODRIVER'] = 'windib' > > import pygame > > assert(os.environ.get('SDL_VIDEODRIVER', '') == 'windib') > > > > > > cu, > > > > > > On Sat, Jun 7, 2008 at 11:19 AM, Lenard Lindstrom <[EMAIL PROTECTED]> > wrote: > >> Let's wait until Pedro Vieira confirms he is using Windows and that > setting > >> SDL_VIDEODRIVER solves his problem. If so then yes we could patch > >> __init__.py to set SDL_VIDEODRIVER if it is not already set. Personally, > I > >> see a 6X increase in framerate enabling directx for the test case below. > >> > >> Lenard > >> > >> > >> René Dudfield wrote: > >>> > >>> hi, > >>> > >>> this is probably because your computer has faster directx 2d driver > >>> than windib driver. > >>> > >>> We had to follow SDLs change of default driver, because the directx > >>> driver is broken on some platforms. > >>> > >>> However you can set the old directx driver. > >>> os.environ["SDL_VIDEODRIVER"] = "directx" > >>> > >>> I would recommend wrapping it in some OS detection - so your game > >>> would still work on the platforms where the directx driver is broken. > >>> > >>> Lenard: Maybe we can make this behaviour default in pygame 1.8.1... ? > >>> What do you think? > >>> We could use the platform module to detect if it's win9x, win2k etc, > >>> then select the directx driver if so. > >>> > >>> If you reckon, it's a good idea, I'll try and make a patch for the OS > >>> detection. > >>> > >>> > >>> > >>> > >>> On Sat, Jun 7, 2008 at 4:33 AM, Pedro Vieira <[EMAIL PROTECTED]> > wrote: > >>> > >>>> > >>>> Hi. > >>>> > >>>> I updated the version of pygame, 1.7.1 to 1.8, and I had problem with > >>>> that. > >>>> My game started to become very slow, only by exchanging version. I was > >>>> looking to see what was happening and saw that the fps was very low. I > >>>> created a simple code to test and I saw that for the same code, ran on > >>>> both > >>>> versions, there is a big difference in FPS. What may be happening? > >>>> > >>>> Thank you. > >>>> > >>>> > >>>> The code that I used for test is below: > >>>> > >>>> import pygame > >>>> > >>>> class Game: > >>>> screen = None > >>>> screen_size = None > >>>> run = True > >>>> > >>>> def __init__( self, size, fullscreen): > >>>> pygame.init() > >>>> flags = pygame.DOUBLEBUF > >>>> if fullscreen: > >>>> flags = (pygame.FULLSCREEN | pygame.DOUBLEBUF | > >>>> pygame.HWSURFACE) > >>>> self.screen = pygame.display.set_mode( size, flags ) > >>>> > >>>> def handle_events( self ): > >>>> for event in pygame.event.get(): > >>>> if ((event.type == pygame.KEYDOWN)or(event.type > == > >>>> pygame.KEYUP)): > >>>> if (event.key == pygame.K_ESCAPE): > >>>> self.run = False > >>>> > >>>> def loop( self ): > >>>> clock = pygame.time.Clock() > >>>> while (self.run): > >>>> clock.tick() > >>>> print clock.get_fps() > >>>> self.screen.fill((255,255,255)) > >>>> self.handle_events() > >>>> pygame.display.flip() > >>>> > >>>> > >>>> game = Game((1024,768), 1) > >>>> game.loop() > >>>> > >> > >> > > >