src/type1z


Log

Author Commit Date CI Message
David Turner b8817177 2000-09-15T17:17:17 small bug-fix, the linearHoriBearing value was not loaded not computed correctly
Werner Lemberg 353dfeaf 2000-08-29T18:58:41 More warnings fixed.
Werner Lemberg 4e9dae68 2000-08-29T16:50:01 Introducing new macro LOCA_VAR to solve some problems with structures containing function pointers. FT will now compile again with C++.
Werner Lemberg d1b7475b 2000-08-24T16:29:15 Formatting, small fixes. Adding basic input parameter checking for exported functions.
David Turner 34f1c2f5 2000-08-23T22:47:44 finally, the CID and Type1z driver are finished !! Werner, please have a look at the code and start re-formatting it :-)
Werner Lemberg 8728f294 2000-08-23T17:32:42 Formatting, small fixes. Adding copyright notices etc.
David Turner a39acf55 2000-08-23T02:47:57 updated "psaux" and "type1z". The Type 1 driver now completely relies on "psaux". I now need to change the CID driver accordingly, then finally move the Type 2 parsing routines to "psaux" when appropriate..
David Turner 97488074 2000-08-22T22:36:33 the psaux module is now nearly completed the "type1z" driver uses it to parse Type 1 charstrings (not to parse the Type 1 token stream yet though)..
Werner Lemberg b1c8bf06 2000-08-17T07:18:04 Minor formatting. Adding copyright/C++ guards to psaux files.
David Turner 24d7024c 2000-08-17T01:09:06 added draft "psaux" code the t1 driver now reads the complete font matrix and applies it (some fonts do not work properly without hinting though...)
Werner Lemberg 29a90e26 2000-08-03T00:03:08 Updating unix/ftconfig.in to recent config/ftconfig.h changes. More C++ fixes: Introducing LOCAL_FUNC_X for local functions used in function pointers (there are no local anonymous functions in C++) and FT_CPLUSPLUS (instead of FT_EXPORT_VAR) to define linkage of structures which contain function pointers.
Just van Rossum 41743505 2000-08-02T02:44:25 Added little know adx offset to t1operator_seac() -- accent positioning now seems correct.
Just van Rossum 2fd491d5 2000-08-01T23:37:25 Fixed Z1_Parse_CharStrings() to work correctly with "open" paths (ie. missing closepath operator)
Just van Rossum dd81f422 2000-08-01T20:47:48 fixed t1_tofixed() to handle floats of the form .001 and -.001 correctly.
Werner Lemberg 3a89c2a4 2000-08-01T17:05:20 Removing FT_MAKE_OPTION_SINGLE_LIBRARY_OBJECT. It has never worked. Instead, define BASE_DEF() and BASE_FUNC() similarly to FT_EXPORT_DEF() and FT_EXPORT_FUNC(), respectively, allowing the programmer to define proper types and/or export lists for multiple DLLs if necessary (e.g. ftbase.dll -- standalone, fttype1.dll -- needs ftbase.dll, etc.). The library is finally compiling and linking natively with a C++ compiler!
Werner Lemberg c713d924 2000-08-01T13:17:04 Added #ifdef's for C++ to all header files.
Just van Rossum 7c64409e 2000-08-01T04:29:25 Some simple patches that allow synthetic fonts to be rendered. *However*: although the FontMatrix is read correctly, it does _not_ seem to be used! I don't understand this...
Werner Lemberg b1dd3535 2000-07-31T22:51:00 Added autoconf tests FT_MUNMAP_DECL and FT_MUNMAP_PARAM to fix some devils. Updating unix/ftsystem.c accordingly. More warning fixes.
Werner Lemberg e72c9fec 2000-07-31T18:59:02 Simplifying the FIELD_* and FRAME_* macros. Before calling these macros, you should #define FT_STRUCTURE to the structure which will be filled. Replaced FT_FIELD_REF with FT_FIELD_SIZE, FT_FIELD_SIZE_DELTA, and FT_FIELD_OFFSET to make the code more readable; additionally, it should be more portable because we no longer cast a pointer to an FT_UShort (which e.g. fails with Sun's C++ compiler) but computes the difference between two pointers which is guaranteed to work. Fixing warnings (and C++ errors) while using Sun's latest cc and CC incarnations. Most of them are related to variable shadowing.
Werner Lemberg 35ca3426 2000-07-31T12:14:27 Fixing gcc warnings on Solaris.
David Turner 5fe4c00e 2000-07-26T19:04:08 - fixed the incorrect SO extension for Visual C++ - disabled the TrueType interpreter by default - disabled the "type1" driver, "type1z" is now used by default (the internal driver name is "type1" now !!)
Werner Lemberg d082cd68 2000-07-25T17:25:32 formatting
Just van Rossum 53fb1f54 2000-07-25T16:20:57 Changed parse_subrs() so that it'll work correctly both with wrongly sorted subr indices *and* non-contiguous subr arrays. Thanks to Tom K. for helping to isolate the problem.
Werner Lemberg d060a75b 2000-07-20T06:57:41 Formatting. Rudimentary support for autoconf (still using GNU make) Say `make unix'.
David Turner c49f69cb 2000-07-20T03:44:50 some welcome fixes related to the auto-hinter: - removed a stupid memory leak - fixed the weird metrics hinting (the horizontal edges were used, instead of the vertical one, to compute the metrics adjustments, silly, silly, silly). there is still some bugs that I'm looking at though, but we're very near the release..
David Turner 6930b45f 2000-07-19T17:13:03 - introduced FT_Get_Glyph_Name (see freetype.h) to access individual glyph names. Changed some drivers to support it through a new interface named "glyph_name". - introduced FT_Get_Sfnt_Name (see ftnames.h) to access the SFNT name table in a TrueType/OpenType file..
David Turner e161ee44 2000-07-10T22:03:10 fixed a bug that caused invalid clipping of monochrome bitmaps when they were blitted on the left edge of an 8-bit pixmap..
Werner Lemberg 93ac3e39 2000-07-10T21:41:32 Formatting. Synchronizing docs.
David Turner e208f4e0 2000-07-10T20:30:59 fixed a really tupid bug in the Multiple Master support of "type1z"
Werner Lemberg b48a6094 2000-07-09T19:15:30 Formatting. Moving some internal structures and constants from freetype.h to ftobjs.h. Finally removing FT_LOAD_ANTI_ALIAS. Cleaning up all error codes. Only the used ones have survived :-) Removed unused FT_MAX_GLYPH_FORMATS constant. T2 error codes are now in the range 0x500-0x5FF (instead of `TrueDoc'). Some minor improvements of error return values. Finally fixing error code values in ftraster and ftgrays to be compliant with all other FT error codes.
Werner Lemberg 681e8eea 2000-07-09T00:48:37 formatting fixing minor `make multi' problem
Werner Lemberg 7fa51b55 2000-07-08T19:51:42 Formatting. Adding some trivial error checking. Adding/Fixing tracing levels.
David Turner a90663f5 2000-07-08T00:41:13 vast clean-up of the sources in order to allow flat directory compilation (by defining the FT_FLAT_COMPILE macro at compile time..) moved "freetype2/BUILD" to "freetype2/docs/BUILD"
Werner Lemberg bd5ae400 2000-07-05T04:32:02 Run g++ on the FreeType library. This should make the use of code in C++ programs easier: Renamed FT_WordXX to FT_UIntXX. Changed a lot of void* to FT_Byte* if related to i/o streams -- FreeType always accesses streams byte-wise, so this makes sense IMHO. Added a lot of #ifdef __cplusplus to header files (and removed a few). Other minor syntax fixes (mostly casts). Replaced the variable `private' with `private_dict' -- `private' is reserved in C++.
David Turner c6a92202 2000-07-04T18:12:13 various clean-ups: - using FT_UNUSED instead of UNUSED - using FT_LONG64 and FT_INT64 instead of LONG64 & INT64 - using FT_SIZEOF_INT & FT_SIZEOF_LONG instead of... - removed the #ifdefs that used SIZEOF_INT, instead we now use FT_Int32 and FT_UInt32 when needed to support 32-bits quantity correctly on 64-bits systems..
Werner Lemberg 11735fe3 2000-07-01T14:08:31 A small fix from Tom.
David Turner f9ca2bb5 2000-06-30T23:12:55 managed to re-design entirely the API in <freetype/ftglyph.h> It is now really the "glyph factory" that Stefan was probably dreaming about.. fixed some recent formatting errors from Werner ;-) cleaned up the demonstration programs from most of the rust that they had, though I'm sure someone is going to re-format them really soon !! "ftstring" now uses the new ftglyph.h API, and is now faster and smaller.. yep..
Werner Lemberg ac39ecdc 2000-06-30T22:24:36 Formatting... Fixing incorrect scaling of vertical advance width.
David Turner 5ae831c1 2000-06-30T01:31:22 changes used to implement the auto-hinting support
David Turner 32b85e67 2000-06-29T21:48:58 various bug fixes in the postscript font drivers (mainly they added one un-necessary point to each contour..)
Werner Lemberg deb4e983 2000-06-29T03:14:25 Formatting... Preprocessor lines now always start the line. Improved error handling in `base' module. Fixed a out-of-bounds error in ttgload.
David Turner 728da1c8 2000-06-27T23:21:51 changed file names and some functions names to avoid conflicts with the "type1" driver.
David Turner c3128615 2000-06-23T05:02:13 bugfixes in the Type1 drivers
Pavel Kaňkovský 5b58f5e3 2000-06-23T04:19:36 fixed *top++ bug present in type1/t1gload.c as well
David Turner d0079e66 2000-06-23T00:07:06 improved the Type1 drivers to deal with the case where the lenIV field is set to -1 to indicate unencoded charstrings fixed some source code to prevent a compiler bug on IRIX fixed the module version's in the "type1z" driver
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).