src/type1z


Log

Author Commit Date CI Message
David Turner f0df85ba 2000-06-22T00:17:42 - 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 The FT_Driver type is still defined, and still represents a pointer to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module, FT_Get_Driver by FT_Get_Module, etc.. - support for generic glyph image types: 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 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 see the file <freetype/ftrender.h> for more details.. These changes were necessary to properly support different scalable formats in the future, like bi-color glyphs, etc.. - glyph loader object: 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. See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for more information.. - FT_GlyphSlot had new fields: 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. 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 was specified when calling FT_Load_Glyph or FT_Load_Char bitmap_left: this field gives the distance in integer pixels from the current pen position to the left-most pixel of a glyph image WHEN IT IS A BITMAP. It is only valid 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 BITMAP. Positive values correspond to upwards Y. loader: this is a new private field for the glyph slot. Client applications should not touch it.. - support for transforms and direct rendering in FT_Load_Glyph: 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 bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags.. - once a glyph image has been loaded, it can be directly converted to a bitmap by using the new FT_Render_Glyph function. Note that this function takes the glyph image from the glyph slot, and converts it to a bitmap whose properties are returned in "face.glyph.bitmap", "face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original native image might be lost after the conversion. - when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph and FT_Load_Char functions will call FT_Render_Glyph automatically when needed.
David Turner f9b8dec4 2000-06-16T19:34:52 major reformatting of the modules source code in order to get rid of most of the basic types redefinitions (i.e. FT_Int instead of "FT_Int", etc..) The format-specific prefixs like "TT_", "T1_", "T2_" & 'CID_" are now only used in relevant structures.. fixed Werner's fix to t2gload.c :-) other small bug fixes
Werner Lemberg 78575dc0 2000-06-12T19:36:41 A lot of formatting. Added more tracing levels. More Makefile fixes. Minor other changes.
Werner Lemberg e35cac66 2000-06-11T03:46:57 A complete revision of FreeType 2's GNU makefiles (of the library): Tons of unnecessary stuff have been removed; only the essential rules have been retained. The source files now depend on all header files in include/freetype, include/freetype/config, and include/freetype/internal. This is not optimal, I know, and I'll try to improve this, but it is better than before (namely no dependencies on `internal'). FTDEBUG_SRC has been added (similar to FTSYS_SRC) -- I don't know exactly whether this is really useful, but it doesn't harm. There is now more documentation in the makefiles itself. io-frames.html: Use of <th>, <code>, and <var> for better tagging. Reactivating of FT_DEBUG_LEVEL_xxx macros. Added a lot of #include directives to make `multi' builds possible -- note that currently the modules cid, t1, and t1z have clashing structures and functions which means that you can only use one of these three modules for a multi build. Added some missing function declarations to (local) header files. Renamed some T1_Open_Face() to CID_Open_Face() in the cid module -- a lot of other functions should be renamed also... Replaced many FT_xxx stuff with T1_xxx in t1z driver -- this isn't finished yet... Fixed FT_Free() to allow a NULL pointer without an assertion (this has always been a valid assumption in FreeType, at least in FT 1.x). A lot of other, minor fixes (mostly documentation).
David Turner 6cef627d 2000-06-07T20:06:54 added code to correctly scale global metrics
Werner Lemberg e1d5dd78 2000-06-07T04:48:12 Moved all *errors.h header files to include/freetype/internal for consistency. Removed unused error message.
David Turner 04aa800c 2000-06-01T03:27:48 added a CID-keyed font driver in "src/cid" fixed two bugs in the smooth renderer
David Turner 5413644b 2000-05-26T17:52:06 added a new demonstration program called "ftmulti" to demonstrate the multiple masters support fixed a few bugs
David Turner 11187206 2000-05-26T17:13:23 finalised the multiple masters support fixed some nasty little bugs too
David Turner 7c388ba4 2000-05-26T02:07:40 added support for multiple master fonts in "type1z". It is now working, but there is no way currently to change the default weight vector (tested with custom vectors though). Note that you should remove the "type1" driver from the module list to be able to test it..
David Turner 1c9a1cab 2000-05-24T21:12:02 important modifications to the Type1z driver these are used to prepare for multiple master fonts
David Turner 1fb6eea7 2000-05-24T00:31:14 EXPORT_DEF renamed to FT_EXPORT_DEF + reformating/spacing
David Turner f5dcdd5c 2000-05-23T22:16:27 minor fix to the Type1 driver(s) to apply the font matrix when necessary..
David Turner e49ab25c 2000-05-16T23:44:38 formatting - removed trailing spaces
David Turner c30aea98 2000-05-12T15:01:18 another massive changes in order to completely avoid compiler warnings with GCC + "-ansi -pedantic -Wall -W" and LCC. Also fixed the compilation of "type1z" with Win32-LCC (its pre-processor is broken !!) Updated the BUILD document too
David Turner bfe2f98f 2000-05-12T12:17:15 a new massive grunt work. Redefined the EXPORT_DEF, EXPORT_FUNC, BASE_DEF and BASE_FUNC macros to let them take an argument.. This is needed to compile the library as a DLL on some platforms that have different compiler conventions..
David Turner 4f2c5544 2000-05-12T10:19:41 additional changes, this time in order to pass extra parameters to font drivers when creating a new face object. The FT_Open_Args structure has been changed to simplify its use and allow generic parameters too..
David Turner efce08d6 2000-05-11T18:23:52 major re-organisation of the FreeType 2 directory hierarchy
David Turner 4d3e5639 2000-05-05T12:33:23 closed most of the memory leaks in the Type 1 driver(s) this is required before any serious work to implement multiple masters
David Turner d50941dc 2000-05-05T01:36:56 fixed a compilation problem that occurred with the LCC C pre-processor. really minor
David Turner d186a361 2000-05-02T17:41:41 various updates to reduce the compilation warnings
David Turner 9a9315fa 2000-05-02T10:59:01 changes to reflect the new files include/tttables.h include/t1tables.h
David Turner d8723b4f 2000-04-14T11:29:14 fixed another small bug. The metrics were not computed correctly..
David Turner 1216e434 2000-04-14T11:22:17 fixed a small bug that prevented the loading of certain fonts that use the DOS linefeed convention.., including the newest XFree86 4.0 B&H Type 1 fonts !!
David Turner 82942cc2 2000-03-30T08:43:03 simple fix required by the auto-hinting module (sets the ft_outline_reverse_fill bit_flag)
David Turner ed7f62ac 2000-03-28T11:19:28 support for FT_LOAD_NO_RECURSE needed by the auto-hinter
Just van Rossum 5ae477c4 2000-03-17T11:51:33 Added prototype for T1_Done_Parser()
David Turner a6415244 2000-03-13T14:25:00 updated documentation for Beta 4
David Turner 7f7aadf4 2000-03-13T12:57:27 finished moving all configuration macros to "config/ftoption.h"
David Turner 3246efed 2000-03-13T12:12:46 first step towards moving all configuration options to the single "config/ftoption.h"
David Turner 7f615aef 2000-03-13T11:49:20 renamed all outlines functions to the FT_Outline_<action> syntax..
David Turner 41dbcbf6 2000-03-09T11:46:25 reformatting, changing the FT_Outline structure: - "flags" have been renamed to "tags" - "outline_flags" have been renamed to "flags" Look for more re-formatting today..
David Turner 0f99ddda 2000-03-06T13:23:32 changed the structure of FT_Outline in order to pack all outline flags in a single integer.. Changed the rest of the library and demo programs accordingly..
David Turner 9d76a8d6 2000-03-06T09:51:19 a few fixes to get rid of unwanted compile-time warnings
Werner Lemberg febe3fbe 2000-03-05T01:14:19 A first check of FT2's Make system. Many smaller and larger bugs have been fixed: . Removing unused variables. . detect.mk files now must provide $(CONFIG_FILE) and not $(CONFIG_RULE). . ansi.mk will now be really used as a fallback if the detect mechanism fails. . ANSIFLAGS will now be really used (fixing a typo). . `make clean' now works (again two typos). . Detection of gcc on Unix has been fixed (using the `-v' option instead of `--version'). . `make devel' now works (on Unix). . Fixing *again* a bug in demos/graph/x11/rules.mk to allow multiple use of `-L' compiler options. . $(BASE_H) now contains a few more header files. As usual, a lot of formatting (not finished yet).
David Turner ca13392d 2000-03-01T13:24:38 a few changes to really compile font drivers in independent single objects..
David Turner e595014a 2000-02-29T17:14:02 simple minor fix in t1afm.h/t1afm.c
David Turner 9c84887d 2000-02-28T11:32:54 remaining fixes from Just
David Turner 7b63d2ea 2000-02-28T11:25:01 fixed a bug that prevented the reading of AFM files..
David Turner d16a4b81 2000-02-15T12:56:44 removed obsolete hinter source code
David Turner 95bec282 2000-02-15T12:55:57 updated version of the experimental Type 1 driver (this thing now works even better than the "regular" driver, but is much smaller). Provides no hinter !!
David Turner dbe4872b 2000-02-14T16:45:40 removed obsolete source file
David Turner 0dd34348 2000-02-02T12:20:53 The Type 1 experimental driver was updated - small reduction of the code size of "t1encode.c" - removed the hinter (not useful with the upcoming auto-hinter..) - updated "t1load.c" to reduce warnings with Visual C++ - considerably changed the glyph loader (it is simpler) Beware, this code is still experimental, and is _not_ debugged. I don't even guarantee that it works for now - David
David Turner 2dfb5aca 2000-01-27T14:02:04 added a new experimental Type 1 driver. This version sports several improvements compared to "src/type1". Briefly : - the postscript-like interpreter is now gone. We now perform pattern-matching to load our font content. The resultant code is much faster, smaller, and easier to maintain. For a more detailed description, see the comments at the start of "src/type1z/t1objs.c" - the glyph loader will be greatly simplified really soon, and the clumsy hinter will be ditched in favor of a more general auto-hinting module (when we get one). The goal is to strip down the Type1 driver to about 15-20 Kb. This is still an experimental version. It is added to the repository for archiving. You should not try to use it for now (it won't work because some crucial parts are _knowingly_ ignored for now !). Note that the "old" type1 driver will probably move to the "demos/src" directory, in order to show how one can replace one given font driver at runtime (and to provide the functionality of the "t1dump" program).