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()
> >>>>
> >>
> >>
> >
>

Reply via email to