updated the CHANGES file
+ some basic formatting cleaning
This commit is contained in:
parent
aa50b821c8
commit
5951ce9fc6
87
CHANGES
87
CHANGES
|
@ -1,14 +1,22 @@
|
||||||
This file summarizes the changes that occured since the last "beta" of FreeType 2.
|
This file summarizes the changes that occured since the last "beta" of FreeType 2.
|
||||||
Because the list is important, it has been divided into separate sections:
|
Because the list is important, it has been divided into separate sections:
|
||||||
|
|
||||||
|
Table Of Contents:
|
||||||
|
|
||||||
|
I High-Level Interface (easier !)
|
||||||
|
II Directory Structure
|
||||||
|
III Glyph Image Formats
|
||||||
|
IV Build System
|
||||||
|
V Portability
|
||||||
|
VI Font Drivers
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------
|
||||||
High-Level Interface :
|
High-Level Interface :
|
||||||
|
|
||||||
The high-level API has been considerably simplified. Here is how :
|
The high-level API has been considerably simplified. Here is how :
|
||||||
|
|
||||||
- resource objects have disappeared. this means that face objects can now
|
- resource objects have disappeared. this means that face objects can
|
||||||
be created with a single function call (see FT_New_Face and
|
now be created with a single function call (see FT_New_Face and
|
||||||
FT_Open_Face)
|
FT_Open_Face)
|
||||||
|
|
||||||
- when calling either FT_New_Face & FT_Open_Face, a size object and a
|
- when calling either FT_New_Face & FT_Open_Face, a size object and a
|
||||||
|
@ -29,6 +37,7 @@ High-Level Interface :
|
||||||
ft_encoding_apple_roman
|
ft_encoding_apple_roman
|
||||||
ft_encoding_sjis
|
ft_encoding_sjis
|
||||||
ft_encoding_adobe_standard
|
ft_encoding_adobe_standard
|
||||||
|
ft_encoding_adobe_expert
|
||||||
|
|
||||||
other values may be added in the future. Each charmap still holds its
|
other values may be added in the future. Each charmap still holds its
|
||||||
"platform_id" and "encoding_id" values in case the encoding is too
|
"platform_id" and "encoding_id" values in case the encoding is too
|
||||||
|
@ -43,7 +52,7 @@ Directory Structure:
|
||||||
freetype/
|
freetype/
|
||||||
config/ -- configuration sub-makefiles
|
config/ -- configuration sub-makefiles
|
||||||
ansi/
|
ansi/
|
||||||
unix/
|
unix/ -- platform-specific configuration files
|
||||||
win32/
|
win32/
|
||||||
os2/
|
os2/
|
||||||
msdos/
|
msdos/
|
||||||
|
@ -75,12 +84,12 @@ Glyph Image Formats :
|
||||||
bitmap types.
|
bitmap types.
|
||||||
|
|
||||||
Each new image format must provide at least one "raster", i.e. a module
|
Each new image format must provide at least one "raster", i.e. a module
|
||||||
capable of transforming the glyph image into a bitmap. It is also possible
|
capable of transforming the glyph image into a bitmap. It's also possible
|
||||||
to change the default raster used for a given glyph image format.
|
to change the default raster used for a given glyph image format.
|
||||||
|
|
||||||
The default outline scan-converter now uses 128 levels of grays by default,
|
The default outline scan-converter now uses 128 levels of grays by default,
|
||||||
which tends to smooth many things. Note that the demo programs have been
|
which tends to smooth many things. Note that the demo programs have been
|
||||||
updated significantly to be able to display these..
|
updated significantly in order to display these..
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------
|
||||||
|
@ -167,10 +176,72 @@ Portability :
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------
|
||||||
Drivers Interface :
|
Font Drivers :
|
||||||
(To be written)
|
|
||||||
|
|
||||||
|
The Font Driver interface has been modified in order to support
|
||||||
|
extensions & versioning.
|
||||||
|
|
||||||
|
|
||||||
|
The list of the font drivers that are statically linked to the
|
||||||
|
library at compile time is managed through a new configuration file
|
||||||
|
called `config/<platform>/ftmodule.h'.
|
||||||
|
|
||||||
|
This file is autogenerated when invoking `make modules'. This target
|
||||||
|
will parse all sub-directories of 'src', looking for a "module.mk"
|
||||||
|
rules file, used to describe the driver to the build system.
|
||||||
|
|
||||||
|
Hence, one should call `make modules' each time a font driver is added
|
||||||
|
or removed from the `src' directory.
|
||||||
|
|
||||||
|
|
||||||
|
Finally, this version provides a "pseudo-driver" in `src/sfnt'. This
|
||||||
|
driver doesn't support font files directly, but provides services used
|
||||||
|
by all TrueType-like font drivers. Hence, its code is shared between
|
||||||
|
the TrueType & OpenType font formats, and possibly more formats to
|
||||||
|
come if we're lucky..
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------
|
||||||
Extensions support :
|
Extensions support :
|
||||||
(To be defined)
|
|
||||||
|
The extensions support is inspired by the one found in 1.x.
|
||||||
|
|
||||||
|
Now, each font driver has its own "extension registry", which lists
|
||||||
|
which extensions are available for the font faces managed by the driver.
|
||||||
|
|
||||||
|
Extension ids are now strings, rather than 4-byte tags, as this is
|
||||||
|
usually more readable..
|
||||||
|
|
||||||
|
Each extension has:
|
||||||
|
- some data, associated to each face object
|
||||||
|
- an interface (table of function pointers)
|
||||||
|
|
||||||
|
An extension that is format-specific should simply register itself
|
||||||
|
to the correct font driver. Here is some example code:
|
||||||
|
|
||||||
|
// Registering an extensions
|
||||||
|
//
|
||||||
|
FT_Error FT_Init_XXXX_Extension( FT_Library library )
|
||||||
|
{
|
||||||
|
FT_DriverInterface* tt_driver;
|
||||||
|
|
||||||
|
driver = FT_Get_Driver( library, "truetype" );
|
||||||
|
if (!driver) return FT_Err_Unimplemented_Feature;
|
||||||
|
|
||||||
|
return FT_Register_Extension( driver, &extension_class );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Implementing the extensions
|
||||||
|
//
|
||||||
|
FT_Error FT_Proceed_Extension_XXX( FT_Face face )
|
||||||
|
{
|
||||||
|
FT_XXX_Extension ext;
|
||||||
|
FT_XXX_Extension_Interface ext_interface;
|
||||||
|
|
||||||
|
ext = FT_Get_Extension( face, "extensionid", &ext_interface );
|
||||||
|
if (!ext) return error;
|
||||||
|
|
||||||
|
return ext_interface->do_it(ext);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
/* The extensions don't need to be integrated at compile time into */
|
/* The extensions don't need to be integrated at compile time into */
|
||||||
/* the engine, only at link time. */
|
/* the engine, only at link time. */
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
*
|
*
|
||||||
* <FuncType>
|
* <FuncType>
|
||||||
|
|
Loading…
Reference in New Issue