Slashdot Mirror


QT 2.3, With Anti-Aliased Fonts

Hazzl noted the announcement that the New version of QT is out. While normally a release of a GUI toolkit isn't that big of a deal, but this release is significant since it is the first Open Source toolkit to make a non-beta release with X-Render support for Anti-Aliased Fonts. Congrats to all the Developers involved.

4 of 168 comments (clear)

  1. Complete proceedure - a bit more than Keith's. ;) by Gendou · · Score: 5
    My friend and I have spent weekends hacking away at this. Here's what we've come up with:

    1. Get X 4.0.2 source or the snapshot. 4.0.2 has the rendering extention necessary for AA'ed and RGB decimated fonts. Also get all the other software - KDE 2.1, Qt 2.3.0, etc. You get the picture. Also, you MUST get Freetype 2.0 source!

    2. Build Freetype2. There's a little hack you must do here on some systems for X to compile properly. In your /usr/local/include/freetype2 directory (which is the default location for Ft2's headers), symlink ft2build.h to freetype/config/ft2build.h. This many not be necessary on all systems... it was for me. Minor problem.

    3. THIS IS THE MOST IMPORTANT (HARD) PART! X configures itself rather stupidly in most cases as far as we have seen. hosts.def overrides all these annoying settings and lets you tweak precisely for your needs... so, let's make sure it does it right. Create a new config/cf/hosts.def file in your XFree86 source directory (commonly /usr/src/xc) - note that commented out items are detected at compile time specifically for your platform:

    #define DebuggableLibraries NO
    #define SharedLibXdmGreet YES
    #define LinkGLToUsrInclude YES
    #define LinkGLToUsrLib YES
    #define SharedLibFont YES
    #define SharedLibXft YES
    #define SharedLibXrender YES
    #define HasZlib YES
    /*#define SharedLibGlu NO*/
    /*#define NormalLibGlu NO*/
    /*#define FSUseSyslog YES */
    /*#define HasKatmaiSupport NO */
    #define HasAgpGart YES
    #define HasMMXSupport YES
    #define Has3DNowSupport YES
    #define BuildGLULibrary YES
    #define BuildXF86DRM YES
    /* Tweak for your system or remove altogether.*/
    #define DefaultGcc2i386Opt -O2 -fno-strength-reduce -mpentiumpro
    #define JoystickSupport NO /* this appears to be broken */
    #define XF86XAA YES
    #define BuildFontServer YES
    #define BuildFreeType YES
    #define BuildXTrueType YES
    #define BuildGlxExt YES
    /*#define BuildDebug NO */
    /*#define BuildXF86DRI NO*/
    /*#define BuildXF86DRIDriverSupport NO*/
    # define BuildRender YES
    # define BuildGLXLibrary YES
    # define BuildXvLibrary YES
    # define BuildXF86DGALibrary YES
    # define BuildXF86DGA YES
    # define BuildXvExt YES
    # define UsbMouseSupport NO /* this seems to be broken too */
    /* Use this if we're going to use external Freetype2 libs instead..*/
    #define Freetype2Dir /usr/local

    4. Build X using a make World and make install (you can make logs of course if you want). You may have some problems... they're usually pretty easy to iron out - and I won't go into how here. Make sure you back up your existing X11 binary tree.

    5. Configure X... do the whole thing. Try starting X with the bare basics. (Duh-step. :-)

    6. If X is working, download this file...
    http://keithp.com/~keithp/fonts/truetype.tar.gz
    ...and extract it in /usr/X11R6/lib/X11/fonts

    7. Download this file...
    http://keithp.com/~keithp/fonts/XftConfig
    ...edit it and copy it to /usr/X11R6/lib/X11

    8. Start X again... this time, try to open an Xterm with the command:
    xterm -fa courier
    If the font is AA'ed... then BINGO! It works!

    9. If you succeeded at 8, build Qt 2.3.0 and KDE 2.1 as you normally would. Read the docs. And there you go! Have fun! AA'ed fonts. :-)

  2. Re:screenshots? by anaZ · · Score: 5
    Here's a screenshot for konqueror showing an arabic webpage :-)
    Without anti-aliasing, arabic letters look very bad...

    Anas

  3. Re:KDE charges ahead by Skeezix · · Score: 5

    Actually, the Gnome codebase is quite well maintained. It's not perfect, but we're working on it. Perhaps you could list specific hard-core facts, rather than making assertions with no basis. If you do have a basis for saying that Gnome will collapse under its own weight in a few months, I'd love to hear it. As someone who has spent significant time looking at the Gnome framework, and being both a C and C++ developer, I can attest to the flexibility of the core C-based architecture with powerful bindings for languages of all sorts--C++, java, python, perl, etc. The Gnome framework, IMHO, is extremely powerful, flexible, and getting even better all the time. Now of course, if you're not used to something you may find it confusing at first. :) First time I started using C++, I thought what a hideous hack! With time I've come to appreciate the advantages of both C and C++. It's great to be able to use both.
    ----

  4. Re:I hope the rendering is improved... by Spy+Hunter · · Score: 5

    Perhaps it isn't the anti-aliasing as much as the fonts. All the fonts I've seen used in screenshots of AA QT looked pretty ugly. In general, Windows has higher-quality fonts than Linux.

    In fact, as I look over this page in Internet Explorer 5.5 on Win98, I notice that while there are fonts drawn all over the screen (menus, address bar, window title bar, text on webpage, status bar, Start menu, etc) there are only two places on the entire screen using AA fonts: The two large bold headers on the comment I'm replying to. Every other font on the screen is NOT AA! When you use a windows machine, you're only looking at AA fonts perhaps 10% of the time. No system fonts are anti-aliased. They just have better quality fonts.

    Someone needs to start a Open Fonts project. Well, probably someone has already. Someone needs to promote existing Open Fonts projects, then, becuase X is in need of some better fonts (that look good and are readable at ALL sizes).

    [me@localhost]$ prolog
    | ?- god.
    ! Existence error in god/0

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}