[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Mac cursors broken



The cursors look ok on linux, X11.

Kamilche:  Would you mind if I added this example to the pygame examples?


On 3/1/06, Farai Aschwanden <fash@xxxxxxxxxx> wrote:
> Hello again
>
> I let it run also on a Mac and got the same graphical bug that you
> described. Would be interersting to see if this code 1:1 would cause
> the same error on Windows.
>
> Tyger
>
>
> Am 28.02.2006 um 22:29 schrieb Kamilche:
>
> > Bob Ippolito wrote:
> >> On Feb 28, 2006, at 2:50 PM, Kamilche wrote:
> >>> I tried my app on the Mac today, and everything works fine (go
> >>> me!)  except the cursors. Some of them are cut in half, some of
> >>> them are  wrapping around funny. I'm compiling custom cursors in
> >>> a variety of  sizes, but all multiples of 8x8. Is there a
> >>> limitation on the Mac  platform regarding cursors, that I'm
> >>> unaware of?
> >> It would be useful to come up with a reproducible example of this
> >> so  that if it is indeed broken, someone can figure out why and
> >> fix it.
> >> -bob
> >
> > Here ya go. Run this under Mac and Windows.
> >
> > --Kamilche
> >
> > import pygame
> >
> >
> > arrow = ( "xX                      ",
> >           "X.X                     ",
> >           "X..X                    ",
> >           "X...X                   ",
> >           "X....X                  ",
> >           "X.....X                 ",
> >           "X......X                ",
> >           "X.......X               ",
> >           "X........X              ",
> >           "X.........X             ",
> >           "X......XXXXX            ",
> >           "X...X..X                ",
> >           "X..XX..X                ",
> >           "X.X XX..X               ",
> >           "XX   X..X               ",
> >           "X     X..X              ",
> >           "      X..X              ",
> >           "       X..X             ",
> >           "       X..X             ",
> >           "        XX              ",
> >           "                        ",
> >           "                        ",
> >           "                        ",
> >           "                        ")
> >
> >
> > no = ("                        ",
> >          "                        ",
> >          "         XXXXXX         ",
> >          "       XX......XX       ",
> >          "      X..........X      ",
> >          "     X....XXXX....X     ",
> >          "    X...XX    XX...X    ",
> >          "   X.....X      X...X   ",
> >          "   X..X...X      X..X   ",
> >          "  X...XX...X     X...X  ",
> >          "  X..X  X...X     X..X  ",
> >          "  X..X   X...X    X..X  ",
> >          "  X..X    X.,.X   X..X  ",
> >          "  X..X     X...X  X..X  ",
> >          "  X...X     X...XX...X  ",
> >          "   X..X      X...X..X   ",
> >          "   X...X      X.....X   ",
> >          "    X...XX     X...X    ",
> >          "     X....XXXXX...X     ",
> >          "      X..........X      ",
> >          "       XX......XX       ",
> >          "         XXXXXX         ",
> >          "                        ",
> >          "                        ",
> >         )
> >
> > def TestCursor(arrow):
> >     hotspot = None
> >     for y in range(len(arrow)):
> >         for x in range(len(arrow[y])):
> >             if arrow[y][x] in ['x', ',', 'O']:
> >                 hotspot = x,y
> >                 break
> >         if hotspot != None:
> >             break
> >     if hotspot == None:
> >         raise Exception("No hotspot specified for cursor '%s'!" %
> > cursorname)
> >     s2 = []
> >     for line in arrow:
> >         s2.append(line.replace('x', 'X').replace(',', '.').replace
> > ('O', 'o'))
> >     cursor, mask = pygame.cursors.compile(s2, 'X', '.', 'o')
> >     size = len(arrow[0]), len(arrow)
> >     pygame.mouse.set_cursor(size, hotspot, cursor, mask)
> >
> > def main():
> >     pygame.init()
> >     pygame.font.init()
> >     font = pygame.font.Font(None, 24)
> >     bg = pygame.display.set_mode((800, 600), 0, 24)
> >     bg.fill((255,255,255))
> >     bg.blit(font.render("Click to advance", 1, (0, 0, 0)), (0, 0))
> >     pygame.display.update()
> >     for cursor in [no, arrow]:
> >         TestCursor(cursor)
> >         quit = 0
> >         while not quit:
> >             pygame.event.pump()
> >             for e in pygame.event.get():
> >                 if e.type == pygame.MOUSEBUTTONDOWN:
> >                     quit = 1
> >     pygame.quit()
> >
> > main()
> >
>
>