home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: SysTools
/
SysTools.zip
/
ft-beta.zip
/
freetype
/
readme.1st
< prev
Wrap
Text File
|
1997-10-06
|
18KB
|
492 lines
Welcome to the
F R E E T Y P E P R O J E C T
The Public Beta!
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 engine is a free and portable TrueType font rendering
engine. It has been developed to provide TT support to a great
variety of platforms and environments.
Notice that FreeType is a *library*. It is *not* a font server
for your preferred environment, even though it was designed to
allow the design of many font servers.
To our knowledge, this is the only royalty-free complete TrueType
engine available. Moreover, its quality fully matches these of
Windows or the Macintosh, a thing that cannot be said for most
other commercial engines available.
FreeType is a clean-room implementation that is not derived from
the original TrueType engine developed by Apple and Microsoft. It
has been created with the sole help of the published TrueType
specifications, which to our great surprise and pain turned out to
be extremely poor or misleading in critical areas. Much hard work
has been undertaken to solve numerous ambiguities; its end result
is a portable, fast quality renderer!
The library itself takes about 55kByte of Intel code, complete
with a TrueType byte-code interpreter and a high-performance
scan-line converter.
You will find in this release:
- Source code written in ANSI C. We have now split the archive
into two versions. One for C, and another one for Pascal.
Due to the very small demand for a Pascal engine, the Pascal
sources are used for experimentation and prototyping. They
are available as a separate package. Contact turner@enst.fr
if you want more informations about it.
The C source code has been successfully compiled and run on
various platforms, including MS-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.
- A high level API to be used by client applications and font
servers. This release is a "real beta", which means that the
API is functional and complete, but may contain bugs. We
release it to the public to help chase bugs, but we invite
you, unlike the four preceding 'alphas', to test and develop
your own code on this API.
- Support for the following features:
o Font smoothing, a.k.a gray-level rendering.
Just like Win95, the renderer uses a 'fine' algorithm
that only smoothes the diagonals and curves, while
keeping the horizontal and vertical stems intact.
o Support for all character mappings.
o A full-featured TrueType byte-code interpreter.
The engine is able to hint the glyphs to produce
excellent output at small sizes. This component has
been extremely difficult to get right, due to the
ambiguous and misleading TrueType specifications.
However, we now *match* Windows and Macintosh
qualities.
o Composite glyphs.
o TrueType collections support, when several fonts are
embedded in the same file.
o Multiple opened fonts and point sizes. And a real object
and memory management system.
o Support for extensions.
It is now possible to extend the engine in parts to
support additional features, like optional tables that
are not considered by the current core engine.
o Kerning support.
Provided as a sample extension with this release,
kerning tables can be accessed from a TrueType font for
applications that need it.
Note to would-be extension writers: A guide will be
released in the final release on how to design
and code extensions. Note that the extension
scheme is still in alpha and will much probably
change for the final version.
Note also that:
- Though development of the library is mainly performed on OS/2
and Linux, the library does not contain system-specific code.
- The package contains some graphics drivers used by the test
programs for display purposes on MS-DOS, OS/2, Amiga, and
X11. These drivers are absolutely not mandatory for running the
FreeType engine. Some console-mode test programs like 'lint' or
'ftdump' don't use graphics at all.
B. The FreeType mini-FAQ:
Summary:
0. Where to find the latest FreeType release?
1. What do you mean by 'Public Beta'?
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 : 'ft-beta.zip'
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
You should also find it at SimTel :
ftp://oak/oakland.edu/pub/simtel.net/msdos/graphics
One can also get it in:
ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype
* for UNIX and Amiga : 'freetype-beta.tar.gz'
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'.
You can find the package, as well as our latest development
versions, at our ftp site:
ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype
We now have a web page at:
http://www.physiol.med.tu-muenchen.de/~robert/freetype.html
(Screen shots available)
There is also a mailing list:
freetype@lists.lrz-muenchen.de
to subscribe, send the usual subscription commands to:
majordomo@lists.lrz-muenchen.de
Any suggestions/bug reports are welcome.
--------------------------------------------------------------------
1. What do you mean by 'Public Beta'?
The previous alpha releases were published for informative
purposes, and each went through several design changes to
accommodate new functionalities and goals.
This release is a beta, which means that
- it contains a _complete_ and _functional_ API and
implementation.
- it may contain bugs, and we invite you to report them
after having read the bug report at our web page.
(http://www.physiol.med.tu-muenchen.de/
~robert/freetype.html)
- The API won't evolve in the future unless we find
serious defects. We thus encourage you to start testing
and developing your own products based on this release.
A simple recompile should be needed when FreeType 1.0
comes out!
Notice that this labelling is unlike the one used more and
more often by commercial vendors, whose 'betas' are
unfinished versions of the products, lacking many important
features. This trend is the shame of the software industry,
and we do not encourage it.
In other words, this release could also be labelled 'GA' or
'final' by marketers. We're happy not to succumb to this.
--------------------------------------------------------------------
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.
We have decided to distribute this package under two
licenses:
o First, The Library GPL:
Because it's generally a good license for free software,
and because it will allow the engine to be part of other
GNU projects without legal prejudice or complications.
o Second, a BSD-like license:
Because the LGPL is horrible for commercial software
vendors, and we perfectly understand this, as well as for
a certain number of other free projects (like X11 or
Wine) who oppose any kind of GNU license.
This release (the one from which you extracted this file)
is distributed under the LGPL. The alternate license
hasn't been completely written yet, but will come with
FreeType 1.0. In few words, it is inspired by the BSD
license, with the following ideas:
- whoever uses it, it will be royalty-free.
- you'll have to 'register' as an 'alternate licensee' to
the FreeType development team. Registration will be
free and automatic (via email or web forms), and will
help us keep track of FreeType's usage.
We're only interested in small data concerning the
registered users, and won't use it to spam or anything
horrible (we're not a commercial company anyway).
We just want to evangelize FreeType's usage, and
welcome any alternate licensee that let us list him in
our 'registered users' pages.
- you'll be free to adapt/change/use the engine to suit
your needs, producing a derivative work. This includes
adding some bug fixes if you need to, or changing some
design constraints in a drastic way. However, the
derivative work will still be under the same license
(and hold the same copyright headers, etc).
--------------------------------------------------------------------
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).
First of all, read the documentation. The user guide gives
some basic hints and concepts. You can also read the source
code for the test programs that you didn't consider yet. If
you're really stuck, mail your question to:
freetype@lists.lrz-muenchen.de
We'll try to help you.
--------------------------------------------------------------------
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 code 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 any
dependence on system specific features (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.
We have several volunteers or even prototypes for the
following servers:
X11, OS/2 and Wine.
You're welcome to volunteer for other platforms, like:
Amiga, RISC OS, BeOS, and others
Please contact freetype-devel@lists.lrz-muenchen.de for
more information.
--------------------------------------------------------------------
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:
The test suite is made of several programs which can be run under
various platforms:
Note that all test programs share the same key map when displaying.
Using the arrow or function keys would have been good to but we
preferred a common map rather than specifying it for each platform:
x : fine counter-clockwise rotation (zoom only)
c : fine clockwise rotation (zoom only)
v : fast counter-clockwise rotation (zoom only)
b : fast clockwise rotation (zoom only)
h : toggle hinting (not with zoom)
+ : fast scale up
- : fast scale down
u : fine scale up
j : fine scale down
l : go to next glyph
k : go to previous glyph
o : go to tenth next glyph
i : go to tenth previous glyph
9 : go to hundredth next glyph (useful for CJK fonts)
0 : go to hundredth previous glyph
ESC :
q : exit
These keys were chosen because they're available on all platforms.
- TIMER:
This is a simple performance timer for the engine. It will load a
TrueType font given as an argument and try to render each glyph as
fast as possible, giving the total time elapsed.
This program only times the scan-line converter's job by rendering
all glyphs at a size of 400pt.
(supports font-smoothing and display)
- ZOOM:
This program is a very simple glyph viewer. Specify a TrueType
font as an argument, and it will try to load it and allow you to
view/scale/rotate any glyph of it. Supports font smoothing.
Doesn't hint glyphs. Use the -p and -e flags to select a CMAP
file.
- LINT:
This program will hint each glyph of a font file, at a given point
size. This is useful to detect bugs in the interpreter (or in the
font file).
- VIEW:
This program will display all glyphs in a given font, applying
hinting to each one. Try it, the results are really pleasant.
Supports font-smoothing.
You can change the point size whenever you want. The OS/2 viewer
comes with a magnifying sub-window that lets you inspect pixel
details (like font-smoothing).
- FTDUMP:
A simple TrueType font or collection dumper.
- FTSTRING:
A simple program to show off string text generation. Used to
display a given message on the screen with a given font, and
eventually resize it as you want.
To know the usage of each program, read the 'HOWTO' file in the
'freetype/c' directory.
Of course, all source code is provided 'as is'. Please read the
file 'license.txt' for more information.
We hope you'll find this engine useful, and look forward your
feed-back.
Thanks for your time and consideration,
David Turner, Robert Wilhelm, Werner Lemberg,
and all the FreeType enthusiasts...
--- end of readme.1st --