home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: SysTools / SysTools.zip / ft-beta.zip / freetype / readme.1st < prev   
Text File  |  1997-10-06  |  18KB  |  492 lines

  1.  
  2.  
  3.                Welcome to the
  4.  
  5.           F R E E T Y P E    P R O J E C T
  6.  
  7.               The Public Beta!
  8.  
  9.            The FREE TrueType Font Engine
  10.  
  11.     Copyright 1996 David Turner    <turner@enst.fr>
  12.             - 1997 Robert Wilhelm  <robert@physiol.med.tu-muenchen.de>
  13.                    Werner Lemberg  <a7971428@unet.univie.ac.at>
  14.  
  15.  
  16. Table Of Contents:
  17.  
  18.     A. Introduction
  19.  
  20.     B. The FreeType mini-FAQ
  21.  
  22.     C. How to use the test programs
  23.  
  24.  
  25. A. Introduction:
  26.  
  27.   The FreeType engine is a free and portable TrueType font rendering
  28.   engine.  It  has been developed to  provide TT support  to a great
  29.   variety of platforms and environments.
  30.   
  31.   Notice that  FreeType is a *library*.   It is *not*  a font server
  32.   for  your preferred environment,  even though  it was  designed to
  33.   allow the design of many font servers.
  34.  
  35.   To our knowledge, this  is the only royalty-free complete TrueType
  36.   engine available.   Moreover, its  quality fully matches  these of
  37.   Windows or  the Macintosh,  a thing that  cannot be said  for most
  38.   other commercial engines available.
  39.  
  40.   FreeType is  a clean-room implementation that is  not derived from
  41.   the original TrueType engine developed by Apple and Microsoft.  It
  42.   has  been created  with the  sole help  of the  published TrueType
  43.   specifications, which to our great surprise and pain turned out to
  44.   be extremely poor or misleading in critical areas.  Much hard work
  45.   has been undertaken to  solve numerous ambiguities; its end result
  46.   is a portable, fast quality renderer!
  47.  
  48.   The  library itself takes  about 55kByte  of Intel  code, complete
  49.   with  a  TrueType  byte-code  interpreter and  a  high-performance
  50.   scan-line converter.
  51.   
  52.   You will find in this release:
  53.  
  54.      - Source code written in ANSI C.  We have now split the archive
  55.        into two  versions.  One for  C, and another one  for Pascal.
  56.        Due to the very small  demand for a Pascal engine, the Pascal
  57.        sources are  used for experimentation  and prototyping.  They
  58.        are available as  a separate package.  Contact turner@enst.fr
  59.        if you want more informations about it.
  60.  
  61.        The C source  code has been successfully compiled  and run on
  62.        various platforms,  including MS-DOS, OS/2,  Amiga, Linux and
  63.        several other variants of Unix.   It is written in ANSI C and
  64.        should be very easily ported to any platform.
  65.  
  66.      - A high level  API to be used by  client applications and font
  67.        servers.  This release is a "real beta", which means that the
  68.        API  is functional and  complete, but  may contain  bugs.  We
  69.        release it  to the public to  help chase bugs,  but we invite
  70.        you, unlike the four  preceding 'alphas', to test and develop
  71.        your own code on this API.
  72.  
  73.      - Support for the following features:
  74.  
  75.          o Font smoothing, a.k.a gray-level rendering.
  76.  
  77.              Just like  Win95, the renderer uses  a 'fine' algorithm
  78.              that  only  smoothes the  diagonals  and curves,  while
  79.              keeping the horizontal and vertical stems intact.
  80.  
  81.          o Support for all character mappings.
  82.  
  83.          o A full-featured TrueType byte-code interpreter.
  84.  
  85.              The  engine  is able  to  hint  the  glyphs to  produce
  86.              excellent  output at small  sizes.  This  component has
  87.              been  extremely  difficult to  get  right,  due to  the
  88.              ambiguous   and  misleading   TrueType  specifications.
  89.              However,   we  now   *match*   Windows  and   Macintosh
  90.              qualities.
  91.  
  92.          o Composite glyphs.
  93.  
  94.          o TrueType  collections  support,  when  several fonts  are
  95.            embedded in the same file.
  96.  
  97.          o Multiple opened fonts and point sizes.  And a real object
  98.            and memory management system.
  99.  
  100.          o Support for extensions.
  101.  
  102.              It is  now possible  to extend the  engine in  parts to
  103.              support additional features,  like optional tables that
  104.              are not considered by the current core engine.
  105.  
  106.          o Kerning support.
  107.  
  108.              Provided  as  a  sample  extension with  this  release,
  109.              kerning tables can be accessed from a TrueType font for
  110.              applications that need it.
  111.  
  112.              Note  to would-be  extension writers:  A guide  will be
  113.                    released in  the final  release on how  to design
  114.                    and  code  extensions.  Note that  the  extension
  115.                    scheme is  still in alpha and  will much probably
  116.                    change for the final version.
  117.  
  118.   Note also that:
  119.  
  120.    - Though development  of the library is mainly  performed on OS/2
  121.      and Linux, the library does not contain system-specific code.
  122.    
  123.    - The  package contains some  graphics drivers  used by  the test
  124.      programs  for  display purposes  on  MS-DOS,  OS/2, Amiga,  and
  125.      X11. These drivers are absolutely not mandatory for running the
  126.      FreeType engine. Some console-mode test programs like 'lint' or
  127.      'ftdump' don't use graphics at all.
  128.    
  129.  
  130. B. The FreeType mini-FAQ:
  131.  
  132.   Summary:
  133.  
  134.   0. Where to find the latest FreeType release?
  135.  
  136.   1. What do you mean by 'Public Beta'?
  137.  
  138.   2. What does the 'Free' in FreeType means?
  139.      Can you use it in a commercial product? (YES!)
  140.      Is it LGPL? (Yes and No, long)
  141.  
  142.   3. I have  made a small program  based on the test  programs but I
  143.      would like to know how to do xxx?
  144.  
  145.   4. What is this weird C source format? It's non standard!
  146.  
  147.   5. When will I  be able to use FreeType  to display TrueType fonts
  148.      under X11, OS/2 or Wine?
  149.  
  150.   6. Trying  to  compile  the  FreeType  sources gives  me  lots  of
  151.      warnings with my ANSI C compliant compiler!
  152.  
  153.   --------------------------------------------------------------------
  154.  
  155.   0. Where to find the latest FreeType release?
  156.  
  157.        The latest package has been uploaded in two formats, with distinct
  158.        CR/LF conventions.
  159.  
  160.        * for DOS and OS/2 :  'ft-beta.zip'
  161.  
  162.              Has been recently uploaded to the HOBBES archive.
  163.  
  164.              currently at ftp://ftp.cdrom.com/pub/os2/incoming, should soon go
  165.              to ftp://ftp.cdrom.com/pub/os2/fonts
  166.  
  167.              You should also find it at SimTel :
  168.                 ftp://oak/oakland.edu/pub/simtel.net/msdos/graphics
  169.  
  170.              One can also get it in:
  171.                 ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype
  172.  
  173.        * for UNIX and Amiga : 'freetype-beta.tar.gz'
  174.  
  175.              Available now at ftp://sunsite.unc.edu/pub/Linux/X11/fonts
  176.  
  177.              or at our FTP site in:
  178.                 ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype
  179.  
  180.        Note that the archives contents are exactly the same. The size
  181.        difference comes only from the different linefeed conventions, and the
  182.        fact that a 'tar.gz' compresses better than a 'zip'.
  183.  
  184.        You can find  the package, as well as  our latest development
  185.        versions, at our ftp site:
  186.  
  187.          ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype
  188.  
  189.        We now have a web page at:
  190.  
  191.           http://www.physiol.med.tu-muenchen.de/~robert/freetype.html
  192.  
  193.        (Screen shots available)
  194.  
  195.        There is also a mailing list:
  196.        
  197.            freetype@lists.lrz-muenchen.de 
  198.        
  199.        to subscribe, send the usual subscription commands to:
  200.        
  201.            majordomo@lists.lrz-muenchen.de
  202.        
  203.        
  204.        Any suggestions/bug reports are welcome.
  205.        
  206.   --------------------------------------------------------------------
  207.  
  208.   1. What do you mean by 'Public Beta'?
  209.  
  210.        The  previous alpha releases  were published  for informative
  211.        purposes,  and each  went through  several design  changes to
  212.        accommodate new functionalities and goals.
  213.  
  214.        This release is a beta, which means that
  215.  
  216.           - it  contains  a  _complete_  and  _functional_  API  and
  217.             implementation.
  218.  
  219.           - it may  contain bugs, and  we invite you to  report them
  220.             after having read the bug report at our web page.
  221.  
  222.            (http://www.physiol.med.tu-muenchen.de/
  223.                    ~robert/freetype.html)
  224.  
  225.           - The  API  won't evolve  in  the  future  unless we  find
  226.             serious defects.  We thus encourage you to start testing
  227.             and developing your own  products based on this release.
  228.             A simple  recompile should  be needed when  FreeType 1.0
  229.             comes out!
  230.  
  231.        Notice that  this labelling is  unlike the one used  more and
  232.        more   often  by  commercial   vendors,  whose   'betas'  are
  233.        unfinished versions  of the products,  lacking many important
  234.        features.  This trend is  the shame of the software industry,
  235.        and we do not encourage it.
  236.  
  237.        In other words,  this release could also be  labelled 'GA' or
  238.        'final' by marketers.  We're happy not to succumb to this.
  239.  
  240.   --------------------------------------------------------------------
  241.  
  242.   2. What does the 'Free' in FreeType means?
  243.      Can you use it in a commercial product? (YES!)
  244.      Is it LGPL?
  245.  
  246.        We  believe that TrueType  is a  great technology  (thanks to
  247.        Apple  engineers)  and  want  to  make it  available  on  all
  248.        platforms  or  machines.   The  engine is  released  free  of
  249.        charge, with source code, in order  to be sure that it can be
  250.        spread as widely as possible.
  251.  
  252.        However, free  does not mean  public domain.  This  engine is
  253.        copyrighted  by its  authors, and  they will  fiercely defend
  254.        their rights.
  255.        
  256.        We  have  decided  to   distribute  this  package  under  two
  257.        licenses:
  258.  
  259.          o First, The Library GPL:
  260.  
  261.            Because it's generally a  good license for free software,
  262.            and because it will allow  the engine to be part of other
  263.            GNU projects without legal prejudice or complications.
  264.  
  265.  
  266.          o Second, a BSD-like license:
  267.  
  268.            Because  the  LGPL is  horrible  for commercial  software
  269.            vendors, and we perfectly understand this, as well as for
  270.            a  certain number  of other  free projects  (like  X11 or
  271.            Wine) who oppose any kind of GNU license.
  272.  
  273.            This release (the one from which you extracted this file)
  274.            is  distributed under  the LGPL.   The  alternate license
  275.            hasn't been  completely written  yet, but will  come with
  276.            FreeType 1.0.   In few words,  it is inspired by  the BSD
  277.            license, with the following ideas:
  278.  
  279.            - whoever uses it, it will be royalty-free.
  280.  
  281.            - you'll have to 'register' as an 'alternate licensee' to
  282.              the  FreeType development  team.  Registration  will be
  283.              free and  automatic (via email or web  forms), and will
  284.              help us keep track of FreeType's usage.
  285.  
  286.              We're  only  interested in  small  data concerning  the
  287.              registered users, and won't  use it to spam or anything
  288.              horrible (we're not a commercial company anyway).
  289.  
  290.              We  just  want  to  evangelize  FreeType's  usage,  and
  291.              welcome any alternate licensee  that let us list him in
  292.              our 'registered users' pages.
  293.  
  294.            - you'll be  free to adapt/change/use the  engine to suit
  295.              your needs, producing a derivative work.  This includes
  296.              adding some bug fixes if  you need to, or changing some
  297.              design  constraints  in a  drastic  way.  However,  the
  298.              derivative work  will still  be under the  same license
  299.              (and hold the same copyright headers, etc).
  300.  
  301.   --------------------------------------------------------------------
  302.  
  303.   3. I have  made a small program  based on the test  programs but I
  304.      would like to know how to do xxx?
  305.  
  306.         (Where   xxx  is   a  feature   lacking  from   the  current
  307.         implementation).
  308.  
  309.         First of all, read  the documentation.  The user guide gives
  310.         some basic hints and concepts.  You can also read the source
  311.         code for the test programs that you didn't consider yet.  If
  312.         you're really stuck, mail your question to:
  313.  
  314.                        freetype@lists.lrz-muenchen.de
  315.  
  316.         We'll try to help you.
  317.  
  318.   --------------------------------------------------------------------
  319.  
  320.   4. What is this weird C source format? It's non standard!
  321.  
  322.        (by David Turner)
  323.  
  324.        This format is my own and comes from my experience of reading
  325.        tons of C, Pascal  and Ada sources, especially large sources.
  326.        I like to describe it as 'airy' and 'columned'.
  327.  
  328.        I chose  this representation because I find  it produces much
  329.        more  readable sources, especially  when printed  (paper *is*
  330.        the ultimate  debugger!).  Of course, that's  purely a matter
  331.        of taste,  as one  could find the  extra spaces  and newlines
  332.        unpleasant on a 25-lines text window.
  333.  
  334.        We  may, for  the  final release,  process  the whole  source
  335.        through a C code beautifier.
  336.  
  337.        Please  read  the file  doc/convtns.txt  for  a  list of  our
  338.        current formatting and design conventions.
  339.  
  340.   --------------------------------------------------------------------
  341.  
  342.   5. When will I  be able to use FreeType  to display TrueType fonts
  343.      under X11, OS/2, or Wine?
  344.  
  345.        Well, that is not FreeType, really!  FreeType is a *portable*
  346.        library,  which means  that we  try  very hard  to avoid  any
  347.        dependence   on  system   specific  features   (like  runtime
  348.        libraries, memory  and I/O management).  An X11  or Wine font
  349.        engine is  something that is  highly tied to a  given system,
  350.        and writing a font server  based on FreeType will require the
  351.        modification of  some specific elements to adapt  them to the
  352.        host system.
  353.  
  354.        The engine is modular enough  to allow that quite easily, but
  355.        a font server  has to deal with various  kinds of constraints
  356.        (like metrics, caching, shared  data, etc.) that are not part
  357.        of FreeType, and will never be!
  358.  
  359.        Note that an XFree or  Wine font server should use a non-LGPL
  360.        license.
  361.  
  362.        We  have  several  volunteers  or  even  prototypes  for  the
  363.        following servers:
  364.  
  365.             X11, OS/2 and Wine.
  366.  
  367.        You're welcome to volunteer for other platforms, like:
  368.  
  369.             Amiga, RISC OS, BeOS, and others
  370.  
  371.          Please   contact  freetype-devel@lists.lrz-muenchen.de  for
  372.          more information.
  373.  
  374.   --------------------------------------------------------------------
  375.  
  376.   6. Trying  to  compile  the  FreeType  sources gives  me  lots  of
  377.      warnings with my ANSI C compliant compiler!
  378.  
  379.        Yes, this is normal, and we are trying to fix this, but don't
  380.        expect  more   than  gcc's  -ansi   and  -pedantic  switches!
  381.        Especially cc on Solaris gives tons of warnings.
  382.  
  383.  
  384. C. How to use the test programs:
  385.  
  386. The test  suite is made of  several programs which can  be run under
  387. various platforms:
  388.  
  389. Note that all  test programs share the same key map when displaying.
  390. Using the  arrow or  function keys  would have been  good to  but we
  391. preferred a common map rather than specifying it for each platform:
  392.  
  393.     x :   fine counter-clockwise rotation (zoom only)
  394.     c :   fine clockwise rotation (zoom only)
  395.  
  396.     v :   fast counter-clockwise rotation (zoom only)
  397.     b :   fast clockwise rotation (zoom only)
  398.  
  399.     h :   toggle hinting (not with zoom)
  400.  
  401.     + :   fast scale up
  402.     - :   fast scale down
  403.     u :   fine scale up
  404.     j :   fine scale down
  405.  
  406.     l :   go to next glyph
  407.     k :   go to previous glyph
  408.  
  409.     o :   go to tenth next glyph
  410.     i :   go to tenth previous glyph
  411.  
  412.     9 :   go to hundredth next glyph (useful for CJK fonts)
  413.     0 :   go to hundredth previous glyph
  414.  
  415.   ESC :
  416.     q :   exit
  417.  
  418. These keys were chosen because they're available on all platforms.
  419.  
  420.  
  421. - TIMER:
  422.  
  423.   This is a simple performance timer for the engine.  It will load a
  424.   TrueType font given as an argument and try to render each glyph as
  425.   fast as possible, giving the total time elapsed.
  426.  
  427.   This program only times the scan-line converter's job by rendering
  428.   all glyphs at a size of 400pt.
  429.  
  430.   (supports font-smoothing and display)
  431.  
  432.  
  433. - ZOOM:
  434.  
  435.   This program  is a very  simple glyph viewer.  Specify  a TrueType
  436.   font as an argument,  and it will try to load it  and allow you to
  437.   view/scale/rotate  any  glyph  of  it.  Supports  font  smoothing.
  438.   Doesn't hint  glyphs.  Use the  -p and -e  flags to select  a CMAP
  439.   file.
  440.   
  441.  
  442. - LINT:
  443.  
  444.   This program will hint each glyph of a font file, at a given point
  445.   size.  This is useful to detect bugs in the interpreter (or in the
  446.   font file).
  447.  
  448.  
  449. - VIEW:
  450.  
  451.   This program  will display  all glyphs in  a given  font, applying
  452.   hinting to  each one.   Try it, the  results are  really pleasant.
  453.   Supports font-smoothing.
  454.  
  455.   You can change the point  size whenever you want.  The OS/2 viewer
  456.   comes  with a magnifying  sub-window that  lets you  inspect pixel
  457.   details (like font-smoothing).
  458.  
  459.  
  460. - FTDUMP:
  461.  
  462.   A simple TrueType font or collection dumper.
  463.  
  464.  
  465. - FTSTRING:
  466.  
  467.   A  simple program  to show  off string  text generation.   Used to
  468.   display  a given  message on  the screen  with a  given  font, and
  469.   eventually resize it as you want.
  470.  
  471.  
  472. To know  the usage  of each  program, read the  'HOWTO' file  in the
  473. 'freetype/c' directory.
  474.  
  475.  
  476. Of course,  all source  code is provided  'as is'.  Please  read the
  477. file 'license.txt' for more information.
  478.  
  479.  
  480. We  hope you'll  find  this  engine useful,  and  look forward  your
  481. feed-back.
  482.  
  483.  
  484. Thanks for your time and consideration,
  485.  
  486.  
  487.     David Turner, Robert Wilhelm, Werner Lemberg,
  488.     and all the FreeType enthusiasts...
  489.  
  490.  
  491. --- end of readme.1st --
  492.