freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

BETA6: Grunt work before the release


From: David Turner
Subject: BETA6: Grunt work before the release
Date: Thu, 18 May 2000 10:09:20 +0200

Hello,

  I've performed some major grunt work on the source code to
  prepare it for an imminent release. There is also a new
  beta (number 6) on the FTP site for those interested in
  testing it.

  May I invite you to test it on your machines and report problems.
  The new code doesn't include any new features (e.g. font drivers
  and auto-hinter), these will come in a few days, but it was
  important to "clean" a lot of things in the source before doing
  so.

  IMPORTANT:
  I now consider the high-level API to be frozen, even if a few
  additional features will probably be added soon. Note that I'm
  still open for comments on missing functionality, improvements,
  etc..


Best Regards,

- David

PS: I have changed the source code since beta 6, which means that
    you can also alternatively load the current snapshot if you want..


  Here's a short summary of the changes. You'll find many,
  many details in the "CHANGES" top-level file.


   I. directory tree hierarchy:

     the layout of "include" has changed to:

        freetype2/
           include/
              freetype/
                 freetype.h    public header files
                 ftsystem.h
                 ....

                 config/
                   ftoption.h    three configuration files that were
                   ftconfig.h    previously located in "freetype2/config"
                   ftmodule.h

                 internal/
                    ...        internal files, previously found in
                               "src/shared" and "src/base"

     the library now uses the "freetype" inclusion prefix, which means
     that you should now write

        #include <freetype/freetype.h>
        #include <freetype/

     to include public header files. You can also access configuration
     files in <freetype/config/....>, and all header files that are shared
     between the base layer and modules are not located in
     <freetype/internal/....>. Beware, the content of this directory might
     change significantly between releases of FreeType 2.


  II. DLL export macros:

    The definition of EXPORT_DEF, EXPORT_FUNC, BASE_DEF and BASE_FUNC has been
    changed to allow the compilation of the library on Win32 systems with both
    Visual C++ and Borland C++. These compilers need a special keyword that
    must be placed in front or after a function return type to indicate that
    it may be a DLL entry point. Now, the code looks like:

    BEFORE

      declaration:
            EXPORT_DEF
            FT_Error       FT_Init_FreeType( FT_Library*  library );

      definition:
            EXPORT_FUNC
            FT_Error       FT_Init_FreeType( FT_Library*  alibrary )
            {
              ...
            }

    AFTER
      declaration:
            EXPORT_DEF(FT_Error)   FT_Init_FreeType( FT_Library*  library );

      definition:
            EXPORT_FUNC(FT_Error)  FT_Init_FreeType( FT_Library*  alibrary )

    All source code has been modified accordingly..


  III. Implemented some missing functions:

    like FT_New_Memory_Face, FT_Set_CharMap, FT_Select_CharMap. The FT_Open_Args
    structure has been modified to be simpler to use (through the use of bit 
flags)
    as well as capable of passing extra parameters to font drivers..


  IV. Code cleanup:

    to eliminate all warnings when compiling with gcc and "-W -Wall -ansi 
-pedantic",
    or when using Win32-LCC (which is uttermost pedantic, and has a broken C 
pre-processor !!)


  V. Various documentation updates, including BUILD, 
docs/internal/build-system.html
       and docs/tutorial/index.html (some of these are still incomplete)


  VI. New default raster:

     I finally nailed this monochrome rendering bug, and the default raster now
     produces 5-gray level anti-aliased outlines by default, for compatibility
     reasons..



reply via email to

[Prev in Thread] Current Thread [Next in Thread]