|
|
|
@ -28,7 +28,7 @@ LATEST CHANGES |
|
|
|
|
|
|
|
|
|
- fixed two memory leaks: |
|
|
|
|
- the memory manager (16 bytes) isn't released in FT_Done_FreeType !! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- using custom input streams, the copy of the original stream |
|
|
|
|
was never released |
|
|
|
|
|
|
|
|
@ -42,14 +42,14 @@ LATEST CHANGES |
|
|
|
|
BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
|
|
|
|
|
- deactivated the trueType bytecode interpreter by default |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- deactivated the "src/type1" font driver. Now "src/type1z" is |
|
|
|
|
used by default.. |
|
|
|
|
|
|
|
|
|
- updates to the build system. We now compile the library correctly |
|
|
|
|
under Unix system through "configure" which is automatically called |
|
|
|
|
on the first "make" invocation. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- added the auto-hinting module !!. Fixing some bugs here and there.. |
|
|
|
|
|
|
|
|
|
- found some bugs in the composite loader (seac) of the Type1-based |
|
|
|
@ -59,7 +59,7 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
updated all relevant files.. |
|
|
|
|
|
|
|
|
|
- found a memory leak in the "type1" driver |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- incorporated Tom's patches to support flex operators correctly |
|
|
|
|
in OpenType/CFF fonts.. Now all I need is to support pure CFF |
|
|
|
|
and CEF fonts to be done with this driver.. :-) |
|
|
|
@ -67,24 +67,24 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
- added the Windows FNT/FON driver in "src/winfonts". For now, |
|
|
|
|
it always "simulates" a Unicode charmap, so it shouldn't be |
|
|
|
|
considered completed right now.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
It's there to be more a proof of concept than anything else |
|
|
|
|
anyway. The driver is a single C source file, that compiles |
|
|
|
|
to 3 Kb of code.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I'm still working on the PCF/BDF drivers.. but I'm too lazy |
|
|
|
|
to finish them now.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- CHANGES TO THE HIGH-LEVEL API |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
o FT_Get_Kerning has a new parameter that allows you to select |
|
|
|
|
the coordinates of the kerning vector ( font units, scaled, |
|
|
|
|
scaled + grid-fitted ). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
o the outline functions are now in <freetype/ftoutln.h> and not |
|
|
|
|
part of <freetype/freetype.h> anymore |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
o <freetype/ftmodule.h> now contains declarations for |
|
|
|
|
FT_New_Library, FT_Done_Library, FT_Add_Default_Modules |
|
|
|
|
|
|
|
|
@ -96,9 +96,9 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
(i.e. corresponds to render_mode == 0 == ft_render_mode_normal). |
|
|
|
|
To generate a monochrome bitmap, use ft_render_mode_mono, or the |
|
|
|
|
FT_LOAD_MONOCHROME flag in FT_Load_Glyph/FT_Load_Char. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FT_LOAD_ANTI_ALIAS is still defined, but values to 0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
o <freetype/freetype.h> now include <freetype/config/ftconfig.h>, |
|
|
|
|
solving a few headaches :-) |
|
|
|
|
|
|
|
|
@ -107,7 +107,7 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- CHANGES TO THE "ftglyph.h" API |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This API has been severely modified in order to make it simpler, |
|
|
|
|
clearer, and more efficient. It certainly now looks like a real |
|
|
|
|
"glyph factory" object, and allows client applications to manage |
|
|
|
@ -121,59 +121,59 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
- cleaned up source code in order to avoid two functions with the |
|
|
|
|
same name. Also changed the names of the files in "type1z" from |
|
|
|
|
"t1XXXX" to "z1XXXX" in order to avoid any conflicts. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"make multi" now works well :-) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also removed the use of "cidafm" for now, even if the source files |
|
|
|
|
are still there. This functionality will certainly go into a specific |
|
|
|
|
module.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- ADDED SUPPORT FOR THE AUTO-HINTER |
|
|
|
|
|
|
|
|
|
- ADDED SUPPORT FOR THE AUTO-HINTER |
|
|
|
|
|
|
|
|
|
It works :-) I have a demo program which simply is a copy of "ftview" |
|
|
|
|
that does a FT_Add_Module( library, &autohinter_module_class ) after |
|
|
|
|
library initialisation, and Type 1 & OpenType/CFF fonts are now hinted. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CID fonts are not hinted, as they include no charmap and the auto-hinter |
|
|
|
|
doesn't include "generic" global metrics computations yet.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Now, I need to release this thing to the FreeType 2 source.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- CHANGES TO THE RENDERER MODULES |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the monochrome and smooth renderers are now in two distinct directories, |
|
|
|
|
namely "src/raster1" and "src/smooth". Note that the old "src/renderer" |
|
|
|
|
is now gone.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I ditched the 5-gray-levels renderers. Basically, it involved a simple |
|
|
|
|
#define toggle in 'src/raster1/ftraster.c' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FT_Render_Glyph, FT_Outline_Render & FT_Outline_Get_Bitmap now select |
|
|
|
|
the best renderer available, depending on render mode. If the current |
|
|
|
|
renderer for a given glyph image format isn't capable of supporting |
|
|
|
|
the render mode, another one will be found in the library's list. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This means that client applications do not need to switch or set the |
|
|
|
|
renderers themselves (as in the latest change), they'll get what they |
|
|
|
|
want automatically... At last.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Changed the demo programs accordingly.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- MAJOR INTERNAL REDESIGN: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A lot of internal modifications have been performed lately on the |
|
|
|
|
source in order to provide the following enhancements: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- more generic module support: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The FT_Module type is now defined to represent a handle to a given |
|
|
|
|
module. The file <freetype/ftmodule.h> contains the FT_Module_Class |
|
|
|
|
definition, as well as the module-loading public API |
|
|
|
@ -187,10 +187,10 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
|
|
|
|
|
The FT_Renderer type is a pointer to a module used to perform various |
|
|
|
|
operations on glyph image. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Each renderer is capable of handling images in a single format |
|
|
|
|
(e.g. ft_glyph_format_outline). Its functions are used to: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- transform an glyph image |
|
|
|
|
- render a glyph image into a bitmap |
|
|
|
|
- return the control box (dimensions) of a given glyph image |
|
|
|
@ -199,16 +199,16 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
The scan converters "ftraster.c" and "ftgrays.c" have been moved |
|
|
|
|
to the new directory "src/renderer", and are used to provide two |
|
|
|
|
default renderer modules. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
One corresponds to the "standard" scan-converter, the other to the |
|
|
|
|
"smooth" one. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The current renderer can be set through the new function |
|
|
|
|
FT_Set_Renderer. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The old raster-related function FT_Set_Raster, FT_Get_Raster and |
|
|
|
|
FT_Set_Raster_Mode have now disappeared, in favor of the new: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FT_Get_Renderer |
|
|
|
|
FT_Set_Renderer |
|
|
|
|
|
|
|
|
@ -223,7 +223,7 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
A new internal object, called a 'glyph loader' has been introduced |
|
|
|
|
in the base layer. It is used by all scalable format font drivers |
|
|
|
|
to load glyphs and composites. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This object has been created to reduce the code size of each driver, |
|
|
|
|
as each one of them basically re-implemented its functionality. |
|
|
|
|
|
|
|
|
@ -236,20 +236,20 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
|
|
|
|
|
In order to support extended features (see below), the FT_GlyphSlot |
|
|
|
|
structure has a few new fields: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
linearHoriAdvance: this field gives the linearly scaled (i.e. |
|
|
|
|
scaled but unhinted) advance width for the glyph, |
|
|
|
|
expressed as a 16.16 fixed pixel value. This |
|
|
|
|
is useful to perform WYSIWYG text. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
linearVertAdvance: this field gives the linearly scaled advance |
|
|
|
|
height for the glyph (relevant in vertical glyph |
|
|
|
|
layouts only). This is useful to perform |
|
|
|
|
WYSIWYG text. |
|
|
|
|
WYSIWYG text. |
|
|
|
|
|
|
|
|
|
Note that the two above field replace the removed "metrics2" field |
|
|
|
|
in the glyph slot. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
advance: this field is a vector that gives the transformed |
|
|
|
|
advance for the glyph. By default, it corresponds |
|
|
|
|
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT |
|
|
|
@ -261,7 +261,7 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
when the "format" field is set to |
|
|
|
|
"ft_glyph_format_bitmap", for example, after calling |
|
|
|
|
the new function FT_Render_Glyph. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bitmap_top: this field gives the distance in integer pixels from |
|
|
|
|
the current pen position (located on the baseline) to |
|
|
|
|
the top-most pixel of the glyph image WHEN IT IS A |
|
|
|
@ -275,7 +275,7 @@ BETA-8 (RELEASE CANDIDATE) CHANGES |
|
|
|
|
|
|
|
|
|
Most of the functionality found in <freetype/ftglyph.h> has been |
|
|
|
|
moved to the core library. Hence, the following: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- a transform can be specified for a face through FT_Set_Transform. |
|
|
|
|
this transform is applied by FT_Load_Glyph to scalable glyph images |
|
|
|
|
(i.e. NOT TO BITMAPS) before the function returns, unless the |
|
|
|
@ -307,7 +307,7 @@ OLD CHANGES FOR BETA 7 |
|
|
|
|
|
|
|
|
|
- bug-fixed the OpenType/CFF parser. It now loads and displays my two |
|
|
|
|
fonts nicely, but I'm pretty certain that more testing is needed :-) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- fixed the crummy Type 1 hinter, it now handles accented characters |
|
|
|
|
correctly (well, the accent is not always well placed, but that's |
|
|
|
|
another problem..) |
|
|
|
@ -338,7 +338,7 @@ OLD CHANGES FOR BETA 7 |
|
|
|
|
- added support for Multiple Master fonts in "type1z". There is also |
|
|
|
|
a new file named <freetype/ftmm.h> which defines functions to |
|
|
|
|
manage them from client applications. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The new file "src/base/ftmm.c" is also optional to the engine.. |
|
|
|
|
|
|
|
|
|
- various formatting changes (e.g. EXPORT_DEF -> FT_EXPORT_DEF) + |
|
|
|
|