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

Re: [pygame] font.get_fonts and OS X



So for OS X and X11, is sysfont.py picking up the right fonts? Or does X11 on OS X share the Aqua fonts.

Lenard

René Dudfield wrote:
hi,

looks like the fix you committed is passing tests now :)
  http://thorbrian.com/pygame/builds.php

Now to figure out a way to get it to pass on OSX 10.4 and below. The tests pass on 10.5 and 10.4 with the optional X11 installed.

cu,



On Fri, May 22, 2009 at 3:21 AM, Lenard Lindstrom <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>> wrote:

    EnumFontFamilies does not map font characteristic to an actual
    TrueType file, so is of no use here.

    Lenard


    Lenard Lindstrom wrote:


        Of course ctypes is used by pygame -m pygame.tests on Windows.
        So requiring it for sysfont as well is reasonable.

        Lenard

        Lenard Lindstrom wrote:


            Hi René,

            win32gui creates a win32api dependency. This could be done
            with ctypes, but now Python 2.4 support will be
            compromised. Personally, I don't care if general Python
            2.4 support is dropped.

            Lenard

            René Dudfield wrote:

                Hi,

                two things I found out...

                maybe this key works?
                "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows[NT]\CurrentVersion\Fonts"



                Also there is an function called EnumFontFamilies,
                that is there from win95 to get font information.


                Here's some code I found using the win32gui module...

                import win32gui
                hdc=win32gui.CreateDC('DISPLAY','Display',None)
                fonts=[]
                def callback(font, tm, fonttype, fonts):
                   fonts.append(font)
                   #print font.lfFaceName
                   #print fonttype
                   return True
                win32gui.EnumFontFamilies(hdc, None, callback, fonts)

                #print fonts

                f = fonts[0]

                print dir(fonts[0])






                On Thu, May 21, 2009 at 6:59 AM, Lenard Lindstrom
                <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
                <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>> wrote:

                   Hi,

                   I see there are problems with Windows XP.
                Apparently the default
                   fonts aren't showing up in the usual registry place:

                   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
                NT\CurrentVersion\Fonts

                   I guess that is just for additional fonts, which
                Brian's build
                   machine apparently does not have. Would there be
                any other places
                   in the registry to search? Or must one start with a
                list of
                   default Windows fonts then check for each in the
                \windows\fonts
                   directory?

                   Lenard


                   René Dudfield wrote:

                       hi,

                       the tests pass on 10.5.7... which just uses the
                unix
                       function... (which uses fc-list).

                       I think it should be easier to figure out what
                to do for when
                       fc-list isn't there (pre 10.5.x machines)...
                 by looking at
                       the out put that the fc-list using function uses.

                       cu,



                       On Wed, May 20, 2009 at 3:33 PM, Lenard Lindstrom
                       <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
                <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>
                       <mailto:len-l@xxxxxxxxx
                <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
                <mailto:len-l@xxxxxxxxx>>>> wrote:

                          I committed what I have so far. If OS X has
                an fc-list
                       equivalent
                          take a look at the updates I made to the
                Unix section of
                          sysfont.py for Python 3 and unicode. Some of
                it may be
                       relevant.

                          Lenard



                          René Dudfield wrote:

                              hello,

                              ah, nice catch!   That's annoying... all
                this time and it
                              hasn't been
                              working on OSX.

                              Can you commit your tests?

                              I can have a go at it... unless Brian
                you want to have
                       a go?


                              Here are the main font paths... the X11
                one isn't there
                       on most
                              installs for 10.4.x ... but should be
                there on most 10.5.x
                              installs.
                              The last path is where OS9 used to
                install fonts, and
                       some people
                              still use that directory apparently.

                              ~/Library/Fonts/
                              /Library/Fonts/
                              /System/Library/Fonts/
                              /usr/X11/lib/X11/fonts/TTF/
                              /Network/Library/Fonts/
                              /System Folder/Fonts/


                              cheers,




                              On Wed, May 20, 2009 at 7:55 AM, Lenard
                Lindstrom
                              <len-l@xxxxxxxxx
                <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
                <mailto:len-l@xxxxxxxxx>>
                       <mailto:len-l@xxxxxxxxx
                <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
                <mailto:len-l@xxxxxxxxx>>>> wrote:
                                                 Currently I am
                filling in the font unit tests. For
                       OS X I
                                  noticed that
                                  sysfont.py does not hunt down
                installed fonts. The
                                  relevant function is a
                                  stub. I have no OS X access, so
                can't write it
                       myself. Is
                                  someone else
                                  willing to take care of it.
                Otherwise when I commit the
                                  completed unit tests
                                  they will fail for OS X.

                                  Lenard


                   --     Lenard Lindstrom
                   <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
                <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>








--
Lenard Lindstrom
<len-l@xxxxxxxxx>