[2890] in comp.os.os2.announce archive

home help back first fref pref prev next nref lref last post

SOURCE: BETA: FAQ: The FreeType project : a free and portable TrueType engine

daemon@ATHENA.MIT.EDU (David Turner)
Mon May 12 01:08:34 1997

To: os2ann.DISCUSS@bloom-picayune.MIT.EDU
Date: 10 May 1997 04:28:01 GMT
From: turner@enst.fr (David Turner)
Reply-To: turner@enst.fr (David Turner)

Reply-to:     turner@enst.fr (David Turner)
[Followups directed to comp.os.os2.programmer.misc]
---------------------------------------------------------------------
Welcome to the

                  F R E E T Y P E    P R O J E C T
                          Alpha Release 4
                   The FREE TrueType Font Engine

    Copyright 1996 David Turner    <turner@enst.fr>
            - 1997 Robert Wilhelm  <robert@physiol.med.tu-muenchen.de>
                   Werner Lemberg  <a7971428@unet.univie.ac.at>

Table Of Contents:
    A. Introduction
    B. The FreeType mini-FAQ
    C. How to use the test programs

A. Introduction:

  The FreeType library is a *free* and *portable* TrueType font rendering
  engine.  This package, known as 'Alpha Release 4' or 'AR4', contains the
  engine's source code and documentation.

  What you'll find in this release are:
     - better portability of the C code than in the previous release.
     - font smoothing, a.k.a. gray-level rendering.
       Just like Win95, only the diagonals and curves are smoothed, while the
       vertical and horizontal stems are kept intact.
     - support for all character mappings, as well as glyph indexing and
       translation functions (incomplete).
     - full-featured TrueType bytecode interpreter !!
       The engine is now able to hint the glyphs, thus producing an excellent
       result at small sizes.  We now match the quality of the bitmaps
       generated by Windows and the Mac!  Check the 'view' test program for a
       demonstration.
     - loading of composite glyphs.
       It is now possible to load and display composite glyphs with the 'zoom'
       test program.  However, composite glyph hinting is not implemented yet
       due to the great incompleteness of the available TrueType
       specifications.

    Also, some design changes have been made to allow the support of the
    following features, though they're not completely implemented yet:
      - multiple opened font instances
      - thread-safe library build
      - re-entrant library build
      - and of course, still more bug fixes ;-)

  Source is provided in two programming languages: C and Pascal, with some
  common documentation and several test programs.

  The Pascal source code has been successfully compiled and run with Borland
  Pascal 7 and fPrint's Virtual Pascal on DOS and OS/2 respectively.

  The C source code has been successfully compiled and run on various
  platforms including DOS, OS/2, Amiga, Linux and several other variants of
  UNIX.  It is written in ANSI C and should be very easily ported to any
  platform.

  Though development of the library is mainly performed on OS/2 and Linux, the
  library does not contain system-specific code.

  However, this package contains some graphics drivers used by the test
  programs for display purposes on DOS, OS/2, Amiga and X11.

  Please feel free to submit display drivers for other systems, after reading
  our convention and installation documents. ( Windows, Be, Acorn anyone ?? )

  Finally, the FreeType Alpha Release 4 is released for informative and
  demonstration purpose only.  The authors provide it 'as is', with no
  warranty.

B. The FreeType mini-FAQ:

  Summary:

  0. Where to find the latest FreeType release?
  1. What do you mean by 'Alpha Release 4'?
  2. What does the 'Free' in FreeType means?
     Can you use it in a commercial product? (YES!)
     Is it LGPL? (Yes and No, long)
  3. I have made a small program based on the test programs but I would like
     to know how to do xxx?
  4. What is this weird C source format? It's non standard!
  5. When will I be able to use FreeType to display TrueType fonts under X11,
     OS/2 or Wine?
  6. Trying to compile the FreeType sources gives me lots of warnings with my
     ANSI C compliant compiler!
  --------------------------------------------------------------------

  0. Where to find the latest FreeType release?

       The latest package has been uploaded in two formats, with distinct
       CR/LF conventions.

       * for DOS and OS/2 :  'freetyp4.zip' (about 375K)
             Has been recently uploaded to the HOBBES archive.

             currently at ftp://ftp.cdrom.com/pub/os2/incoming, should soon go
             to ftp://ftp.cdrom.com/pub/os2/fonts

             One can also get it in:
                ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype

       * for UNIX and Amiga : 'freetype-AR4.tar.gz' (about 290K)
             Available now at ftp://sunsite.unc.edu/pub/Linux/X11/fonts
             or at our FTP site in :
                ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype

       Note that the archives contents are exactly the same. The size
       difference comes only from the different linefeed conventions, and the
       fact that a 'tar.gz' compresses better than a 'zip'.

       We now have a web page at:
          http://www.physiol.med.tu-muenchen.de/~robert/freetype.html

       (Screenshots available)
       Note that the page and the screen shots may not be up to date..

       The home site of the FreeType project is
           ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype

       There is also a mailing list:
           freetype@lists.tu-muenchen.de

       send the usual subscription commands to:
           majordomo@lists.tu-muenchen.de

       Any suggestions/bug reports are welcome.

  --------------------------------------------------------------------
  1. What do you mean by 'Alpha Release 4'?

       'Alpha' means that this release includes a version of the FreeType
       engine that is far from finished.  Some important features are still
       lacking and the high-level interface is still undefined.  This means
       that you should expect a lot of changes between this and the final
       release.  It should be *very* clear that the only purpose for which
       this alpha was released is to be informative.  Unlike a beta, we are
       still free to change dramatically key components of the engine if
       needed.

       Moreover, the given test programs do not illustrate in any way
       FreeType's future interface, their sole purpose being to demonstrate
       the engine's performance and quality.

  --------------------------------------------------------------------
  2. What does the 'Free' in FreeType means?
     Can you use it in a commercial product? (YES!)
     Is it LGPL?

       We believe that TrueType is a great technology (thanks to Apple
       engineers) and want to make it available on all platforms or machines.
       The engine is released free of charge, with source code, in order to be
       sure that it can be spread as widely as possible.

       However, free does not mean public domain.  This engine is copyrighted
       by its authors, and they will fiercely defend their rights.

       There are a number of standard licenses that protect the rights of free
       software authors, one of the most famous being the GNU Public License
       (GPL).  Though the GPL is probably the only license that protects both
       the software's author and its users, it mandates that all work based on
       or containing GPL-ed software become GPL itself.  This simple rule
       prevents any use of the software other than with GPL-ed one.
       Commercial products as well as freeware ones released by their authors
       under any other licenses cannot use the software though it is "free".

       A different license called the Library GPL (or LGPL) applies to
       libraries, stating that any program, even commercial ones, have the
       right to dynamically link to a LGPL-ed DLL, as long as the source code,
       or an object file, for the library is distributed with the product.
       This is better, as it has allowed a lot of various freeware programs to
       use LGPL-ed libraries.  Use in commercial products is much more seldom,
       of course... (the GPL-ed DLL *must* come with a copy of the Library GNU
       Public License, which is not very 'pleasant' for many companies and
       developers).  Actually, LGPL is one of the best way to prevent a
       program to go into a commercial product.

       However, LGPL is still too limited for FreeType.  What if someone wants
       to put the engine on a laser printer or PDA ROM? What if a DOS or
       console game maker want to use it to display nice characters?  There
       are places were dynamic linking is not available, and even if all
       modern operating systems include it, there will probably always be some
       specific cases that will exclude it for any technical reason.  Because
       we hope wide distribution and acceptance, we must accept that FreeType
       be included in any kind of product, in more or less exotic ways. In
       order to allow any company to use the engine, we decided to propose two
       kinds of licensing.  So:

         - This package is released under the terms of the LGPL so as to
           benefit from its protection. Feel free to test and stress it.

         - However, for companies and developers who are not willing to accept
           the LGPL (we understand you), an alternate license, which is also
           free, can be obtained contacting the authors.

           (Note that this license will only be valid with the agreement of
            all authors).

       We however sincerely invite you to wait for the final release before
       asking for any license but LGPL...

  --------------------------------------------------------------------
  3. I have made a small program based on the test programs but I would like
     to know how to do xxx?

        (Where xxx is a feature lacking from the current implementation).

        Sorry, but we will not answer this question.  As stated above, this is
        an Alpha release that is subject to a lot of design changes.  Even if
        there is a way to do what you want with the current release, we won't
        try helping you as any semantics and features could disappear or be
        changed before the next release.

        The test programs do *not* illustrate the way to use FreeType. They
        just demonstrate performance.

  --------------------------------------------------------------------
  4. What is this weird C source format? It's non standard!

       (by David Turner)

       This format is my own and comes from my experience of reading tons of
       C, Pascal and Ada sources, especially large sources.  I like to
       describe it as 'airy' and 'columned'.

       I chose this representation because I find it produces much more
       readable sources, especially when printed (paper *is* the ultimate
       debugger!).  Of course, that's purely a matter of taste, as one could
       find the extra spaces and newlines unpleasant on a 25-lines text
       window.

       We may, for the final release, process the whole source through a C
       beautifier.

       Please read the file doc/convtns.txt for a list of our current
       formatting and design conventions.

  --------------------------------------------------------------------
  5. When will I be able to use FreeType to display TrueType fonts under X11,
     OS/2 or Wine?

       Well, that is not FreeType, really!  FreeType is a *portable* library,
       which means that we try very hard to avoid depending on system
       specifics (like runtime libraries, memory and I/O management).  An X11
       or Wine font engine is something that is highly tied to a given system,
       and writing a font server based on FreeType will require the
       modification of some specific elements to adapt them to the host
       system.

       The engine is modular enough to allow that quite easily, but a font
       server has to deal with various kinds of constraints (like metrics,
       caching, shared data, etc.) that are not part of FreeType, and will
       never be!

       Note that an XFree or Wine font server should use a non-LGPL license.

  --------------------------------------------------------------------
  6. Trying to compile the FreeType sources gives me lots of warnings with my
     ANSI C compliant compiler!

       Yes, this is normal, and we are trying to fix this, but don't expect
       more than gcc's -ansi and -pedantic switches! Especially cc on Solaris
       gives tons of warnings.

C. How to use the test programs:

Please read the 'HOWTO' file found in the freetype/c/lib directory. It will
give you all details to install/compile and run the test programs.

Read the 'INSTALL' file in freetype/c/ to learn how to compile the C version.

For the Pascal version, dependency checking is automatic.

Of course, this source code is provided 'as is'.  Please read the file
'license.txt' for more information.

Be aware that this is an alpha release. Most of the documentation is
incomplete and some features are still lacking. However, we hope you'll find
this project interesting. We already have volunteers ready to port the engine
to OS/2, X11 and Wine when it is finished but new platforms are also welcomed,
as well as all expert advice :)

Thanks for your time and consideration,

David Turner, Robert Wilhelm, Werner Lemberg,
and all the FreeType enthousiasts...
=====================================================================
| c.o.o.announce submissions: POST [or email comp-os-os2-announce@uunet.uu.net]
| Correspondence to the COOA Moderator: mailto:lfirrantello@bix.com .
| Please see: http://www.bix.com/pub/os2ann/pindex.htm for posting guidelines

home help back first fref pref prev next nref lref last post