src/base/ftobjs.c


Log

Author Commit Date CI Message
David Turner 7504e48e 2002-06-07T07:24:55 * src/base/ftobjs.c (FT_Render_Glyph_Internal): changed definition from FT_EXPORT_DEF to FT_BASE_DEF
Werner Lemberg 4d631e44 2002-05-27T13:02:37 Fix comment.
Werner Lemberg 9ca7a157 2002-04-30T14:26:49 * src/base/ftmac.c (p2c_str): Removed. (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for OS X. (is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X. Handle `nameLen' <= 6 also. (parse_fond): Remove unused variable `name_table'. Use functionality of old p2c_str directly. Add safety checks. (read_lwfn): Initialize `size_p'. Check for size_p == NULL. (new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1. (FT_New_Face_From_LWFN): Remove unused variable `memory'. Remove some dead code. (FT_New_Face_From_SFNT): Remove unused variable `stream'. (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X. (FT_New_Face_From_FOND): Remove unused variable `error'. (ResourceForkSize): New function. (FT_New_Face): Use it. Handle empty resource forks. Conditionalize some code for OS X. Add code to call normal loader as a fallback. Some more variable renames to avoid troubles on the Mac. * src/raster/ftraster.c: s/Unknown|Ascending|Descending|Flat/\1_State/. * src/smooth/ftgrays.c: s/TScan/TCoord/. Other changes for the Mac. * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for Mac platforms. * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/. * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always an even number.
David Turner f5749608 2002-04-18T10:07:26 * src/base/ftobjs.c, builds/win32/ftdebug.c, builds/amiga/src/base/ftdebug.c : 2.1.0 couldn't be linked against applications in Win32 and Amiga builds due to changes to "src/base/ftdebug.c" that were not properly propagated to "builds/win32" and "builds/amiga".. this has been fixed. We'll probably make 2.1.1 real soon now.. * include/freetype/internal/ftobject.h, include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h, include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c: adding new experimental files for 2.1.1 (or 2.1.2)
David Turner d15bc0d1 2002-04-12T09:31:48 * README.UNX: updated the Unix-specific quick-compilation guide to warn about the GNU Make requirement at compile time.. * include/freetype/config/ftstdlib.h, include/freetype/config/ftconfig.h, include/freetype/config/ftheader.h, include/freetype/internal/ftmemory.h, include/freetype/internal/ftobjs.h, src/autohint/ahoptim.c, src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c, src/base/ftobjs.c, src/base/ftsystem.c, src/cache/ftcimage.c, src/cache/ftcsbits.c, src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c, src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c, src/psaux/t1cmap.c, src/psaux/t1decode.c, src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c, src/pshinter/pshrec.c, src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfdriver.c, src/sfnt/ttload.c, src/sfnt/ttpost.c, src/smooth/ftgrays.c, src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c: added the new configuration file "ftstdlib.h" used to define aliases for all ISO C library functions used by the engine (e.g. strlen, qsort, setjmp, etc...) this eases the porting of FreeType 2 to exotic environments like XFree86 modules/extensions.. also removed many #include <string.h>, #include <stdlib.h>, etc... from the engine's sources where they're not needed..
Werner Lemberg f8ba2005 2002-03-30T13:16:35 * include/freetype/t1tables.h (t1_blend_max): Fix typo. * src/base/ftstream.c: Simplify FT_ERROR calls. formatting, copyright update
David Turner 2ded2c1d 2002-03-22T22:37:40 * src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c: various fixes to make the FT_CMaps support work correctly (more tests are still needed)
David Turner ed54f28e 2002-03-22T17:09:52 various fixes to the FT_CMaps support
David Turner e459d742 2002-03-22T13:52:37 * include/freetype/internal/ftmemory.h, and a lot of other files !!: changed the names of memory macros. Examples: MEM_Set => FT_MEM_SET MEM_Copy => FT_MEM_COPY MEM_Move => FT_MEM_MOVE ALLOC => FT_ALLOC FREE => FT_FREE REALLOC = >FT_REALLOC FT_NEW was introduced to allocate a new object from a _typed_ pointer.. note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer arguments. This results in _lots_ of sources being changed, but makes the code more generic and less error-prone..
David Turner e2f4e52a 2002-03-21T15:00:13 * src/base/ftobjs.c (FT_Get_Next_Char): updated to new FT_CMap definitions
David Turner 7d3a2642 2002-03-20T10:49:31 * renaming stream macros. Examples: FILE_Skip => FT_STREAM_SKIP FILE_Read => FT_STREAM_READ ACCESS_Frame => FT_FRAME_ENTER FORGET_Frame => FT_FRAME_EXIT etc...
David Turner b93b0f5f 2002-03-14T09:28:51 * include/freetype/internal/ftobjs.h, src/base/ftapi.c, src/base/ftobjs.c: updated a few face method definitions: FT_PSName_Requester => FT_Face_GetPostscriptNameFunc FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
David Turner ef3c1265 2002-03-14T09:22:48 * include/freetype/internal/ftdriver.h, include/freetype/internal/ftobjs.h, src/base/ftapi.c, src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h, src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c, src/pcf/pcfdriver.h, src/truetype/ttdriver.c, src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h, src/winfonts/winfnt.c, src/winfonts/winfnt.h: updating the type definitions for font font drivers
David Turner 9657ef05 2002-03-14T08:49:59 * include/freetype/internal/autohint.h, src/autohint/ahmodule.c, src/base/ftapi.c, src/base/ftobjs.c: updating the type definitions for the auto-hinter module. (i.e. FT_AutoHinter_Interface => FT_AutoHinter_ServiceRec, FT_AutoHinter_Interface* => FT_AutoHinter_Service, etc..)
David Turner 83b4a4b5 2002-03-06T12:42:34 * include/freetype/freetype.h, include/freetype/internal/ftobjs.h, src/base/ftobjs.c, src/base/ftinit.c: adding the new FT_Library_Version API to return the library's current version in dynamic links.
David Turner bc82f1bb 2002-03-01T02:26:22 * include/freetype/ftconfig.h: changed FT_LOCAL xxxx to FT_LOCAL( xxxx ) everywhere in the source. Sames goes for FT_LOCAL_DEF xxxx translated into FT_LOCAL_DEF( xxxxx )
David Turner 041889e7 2002-02-28T19:28:26 * include/freetype/freetype.h: changing version to 2.1.0 to indicate an unstable branch. Added the declarations of FT_Get_First_Char and FT_Get_Next_Char * src/base/ftobjs.c: implemented FT_Get_First_Char and FT_Get_Next_Char
David Turner 4e7eeeec 2002-02-28T16:10:29 yet another logical transformation of the internals to make them more consistent and understandable.. mainly, changing things like PS_Table => PS_TableRec + *PS_Table
David Turner 53b3fa1d 2002-02-24T05:26:57 * renaming stream functions to the FT_Subject_Action scheme: FT_Seek_Stream => FT_Stream_Seek FT_Skip_Stream => FT_Stream_Skip FT_Read_Stream => FT_Stream_Read FT_Read_Stream_At => FT_Stream_Read_At FT_Access_Frame => FT_Stream_Enter_Frame FT_Forget_Frame => FT_Stream_Exit_Frame FT_Extract_Frame => FT_Stream_Extract_Frame FT_Release_Frame => FT_Stream_Release_Frame FT_Get_XXXX => FT_Stream_Get_XXXX FT_Read_XXXX => FT_Stream_Read_XXXX note also that: FT_New_Stream( filename, stream ) => FT_Stream_Open( stream, filename ) (the function doesn't create the FT_Stream structure, it simply initializes it for reading) FT_New_Memory_Stream( library, FT_Byte* base, size, stream ) => FT_Stream_Open_Memory( stream, const FT_Byte* base, size ) FT_Done_Stream => FT_Stream_Close note that the name of the stream methods, defined in "include/freetype/ftsystem.h" have also been changed without problems: FT_Stream_IO => FT_Stream_IOFunc FT_Stream_Close => FT_Stream_CloseFunc
David Turner 4d57024d 2002-02-24T02:59:24 * moving all code related to glyph loaders to "internal/ftgloadr.h" and "src/base/ftgloadr.c". Note also that the type "FT_GlyphLoader" is now a pointer to the structure "FT_GlyphLoaderRec"..
David Turner 4a233510 2002-02-24T02:39:08 renaming "ft_glyph_own_bitmap" into "FT_GLYPH_OWN_BITMAP"
David Turner 222cec8c 2002-02-21T11:48:48 * include/freetype/internal/ftdebug.h, src/base/ftdebug.c: modified the debug sub-system initialization. trace levels can now be specified within the "FT2_DEBUG" environment variable. See the comments within "ftdebug.c" for more details * include/freetype/internal/fttrace.h: new file to define the trace levels used for debugging. it is used both to define enums and toggle names for FT2_DEBUG * src/base/ftobjs.c, src/base/ftstream.c: FT_Assert renamed to FT_ASSERT * include/freetype/internal/ftextend.h, src/base/ftextend.c, src/base/Jamfile, src/base/rules.mk: removing "ftextend" from the library, since it is now completely obsolete..
Werner Lemberg 0f7c2f1a 2002-02-04T20:55:58 Adding the function `FT_Get_Next_Char', doing the obvious thing w.r.t. the selected charmap. * include/freetype/freetype.h: Add prototype. * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar' typedef. (FT_Driver_Class): Use it. * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func' typedef. (PSNames_Interface): Use it. * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func' typedef. (TT_CMapTable): Use it. * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing high-level API. * src/cff/cffdrivr.c (cff_get_next_char): New function. (cff_driver_class): Add it. * src/cid/cidriver.c (Cid_Get_Next_Char): New function. (t1cid_driver_class): Add it. * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function. (pcf_driver_class): Add it. * src/psnames/psmodule.c (PS_Next_Unicode): New function. (psnames_interface): Add it. * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4, code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary functions. (TT_CharMap_Load): Use them. * src/truetype/ttdriver.c (Get_Next_Char): New function. (tt_driver_class): Add it. * src/type1/t1driver.c (Get_Next_Char): New function. (t1_driver_class): Add it. * src/winfnt/winfnt.c (FNT_Get_Next_Char): New function. (winfnt_driver_class): Add it. * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for Unicode and Latin 1 encodings.
David Turner f86709a1 2002-01-07T10:04:09 * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c, src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c, src/sfnt/ttload.c, src/sfnt/ttsbit.c: removing small compiler warnings (in pedantic compilation modes)
David Turner 7fe38a51 2002-01-04T09:47:30 remove compiler warnings and a typo in builds/unix/ftsystem.c
Werner Lemberg 1a0a9793 2002-01-03T22:06:13 * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler warning.
David Turner 662b344c 2002-01-03T16:56:59 * src/type1/t1objs.c (T1_Face_Init): fixed a bug that crashed the library when dealing with certain weird fonts (like "Stalingrad", in "sadn.pfb". This font has no full font name entry.. ) * src/base/ftoutln.c, include/freetype/ftoutln.h: added the FT_Outline_Check API to check the consistency of outline data * src/base/ftobjs.c (FT_Load_Glyph): added a call to the new FT_Outline_Check to ensure that loaded glyphs are valid. This allows certain fonts like "tt1095m_.ttf" to be loaded even though it appears they contain really funky glyphs.. there still is a bug there though.. !!
Werner Lemberg f41e71a1 2001-12-20T21:22:02 * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning. Formatting.
David Turner c8087481 2001-12-20T13:14:18 * docs/TODO: added "stem3 and counter hints support" to the TODO list for the Postscript hinter * docs/BUGS: closed the AUTOHINT-NO-SBITS bug. * src/pshinter/pshrec.c (t2_hint_stems), src/cff/cffobjs.h, src/cff/cffobjs.c, src/cff/cffload.c, src/cff/cffload.h, src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffdriver.c, include/freetype/internal/cfftypes.h: added Postscript hinter support to the CFF driver * src/base/ftobjs.c (FT_Done_Library): fixed a stupid bug that crashed the library on exit
Werner Lemberg 0d535112 2001-12-19T22:26:12 Formatting. CFF encoding tables moved back from cffload.c to cffload.h.
David Turner 4937a3eb 2001-12-19T21:09:16 * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c (FT_Load_Glyph): "fixed" the bug that prevented embedded bitmaps from begin loaded when the auto-hinter is used.. This actually is a hack but will be enough until the internal re-design scheduled for FreeType 2.1
Werner Lemberg aef3fc81 2001-12-17T16:21:22 * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid glyph header.
David Turner c8ad30a7 2001-12-05T17:24:34 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): re-ordered code for debugging purposes.. * src/smooth/ftsmooth.c (ft_smooth_render): fixed a nasty hidden bug where outline shifting wasn't correctly undone after bitmap rasterization. this created problems with certain glyphs (like '"' of certain fonts..) and the cache system..
Werner Lemberg c3b21608 2001-12-05T01:22:05 Formatting. Cleaning up of ChangeLog. * docs/license.txt: s/X Windows/X Window System/. * src/raster/ftraster.c: Fix definition condition of MEM_Set(). * src/smooth/ftgrays.c (M_Y): Change value to 192. * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter. Remove unused variable. * src/cache/ftcimage.c (ftc_image_node_init, ftc_image_node_compare): Remove unused variables. * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused variable. * src/raster/ftraster.c (MEM_Set): Move definition down to avoid compiler warning. * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to avoid compiler warnings. * src/pcf/pcfread.c (tableNames): Use `const'. (pcf_read_TOC): Change counter name to avoid compiler warning. Use `const'. * src/pshinter/pshrec.c (ps_hints_close): Remove redundant declaration. * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables to avoid shadowing. * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto. * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()' and `T1_Size_Done()'.
David Turner a1471038 2001-10-18T11:23:51 fixing a "bug" that affected the Postscript hinter: growing a memory block though "realloc" didn't clear the new bytes of memory..
David Turner 23bcde19 2001-10-17T13:48:10 implementing a new function named "FT_Get_Postscript_Name" to retrieve a face's "unique" Postscript name
Werner Lemberg 80b8d770 2001-10-10T19:56:42 Fixed a bug in `glnames.py' that prevented it from generating correct glyph names tables. This resulted in the unavailability of certain glyphs like `Cacute', `cacute' and `lslash' in Unicode charmaps, even if these were present in the font (causing problems for Polish users). * src/tools/glnames.py (mac_standard_names): Fixed. (t1_standard_strings): Some fixes and renamed to ... (sid_standard_names): This. (t1_expert_encoding): Fixed. (the_adobe_glyph_list): Renamed to ... (adobe_glyph_names): This. (the_adobe_glyphs): Renamed to ... (adobe_glyph_values): This. (dump_mac_indices, dump_glyph_list, dump_unicode_values, main): Updated. * src/psnames/pstables.h: Regenerated. * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset. Fix return value. Use `sid_standard_table' and `ps_names_to_unicode' instead of `t1_standard_glyphs' and `names_to_unicode'. (PS_Macintosh_Name): Use `ps_glyph_names' instead of `standard_glyph_names'. (PS_Standard_Strings): Use `sid_standard_names' instead of `t1_standard_glyphs'. * doc/BUGS, doc/TODO: New documents. * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented correct LRU behaviour. setjmp() and longjmp() are now used for rollback (i.e. when memory pool overflow occurs). Function names are now all uniformly prefixed with `gray_'. * src/smooth/ftgrays.c: Include <setjmp.h>. (ErrRaster_MemoryOverflow): New macro. (TArea): New type to store area values in each cell (using `int' was too small on 16-bit systems). <limits.h> is included to properly get the needed data type. (TCell, TRaster): Use it. (TRaster): New element `jump_buffer'. (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get `outline' from it. (gray_record_cell): Use longjmp(). (gray_set_cell): Use gray_record_cell() for error handling. (gray_render_line, gray_render_conic, gray_render_cubic): Simplify. (gray_convert_glyph_inner): New function, using setjmp(). (gray_convert_glyph): Use it. Provide a public API to manage multiple size objects for a given FT_Face in the new header file `ftsizes.h'. * include/freetype/ftsizes.h: New header file, * include/freetype/internal/ftobjs.h: Use it. Remove declarations of FT_New_Size and FT_Done_Size (moved to ftsizes.h). * include/freetype/config/ftheader.h (FT_SIZES_H): New macro. * src/base/ftobjs.c (FT_Activate_Size): New function. * src/cache/ftcmanag.c: Include ftsizes.h. (ftc_manager_init_size, ftc_manager_flush_size): Use FT_Activate_Size.
David Turner b3ba40dd 2001-10-07T13:30:26 * include/freetype/ftsizes.h, src/base/ftobjs.c, src/cache/ftcmanag.c: added a new header, named "ftsizes.h" (FT_SIZES_H) to provide a public API to manage multiple size objects for a given FT_Face.
Werner Lemberg 5dea4443 2001-08-13T11:44:29 Updating to OpenType 1.3. * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4, TT_CMap6): Adding field `language'. (TT_CMapTable): Removing field `language'. Type of `length' field changed to FT_ULong. Adding fields for cmaps format 8, 10, and 12. (TT_CMapGroup): New auxiliary structure. (TT_CMap8_12, TT_CMap10): New structures. * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader): Removed last element of `Reserved' array. * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4, TT_NAME_ID_CID_FINDFONT_NAME): New macros. * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language' field to the new structures. Fixed freeing of arrays in case of unsuccessful loads. Added support for loading format 8, 10, and 12 cmaps. (TT_CharMap_Free): Added support for freeing format 8, 10, and 12 cmaps. (code_to_index4): Small improvement. (code_to_index6): Ditto. (code_to_index8_12, code_to_index10): New functions. * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new structure. (TT_Load_CMap): Ditto. * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS Unicode). * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
Tom Kacvinsky ff2714fe 2001-08-08T10:58:08 Added function FT_Get_Name_Index, used to return a glyph index for a given glyph name only if the driver supports glyph names.
Werner Lemberg 415235df 2001-06-28T17:49:10 finishing function header formatting updating copyrights
Werner Lemberg f814d0fa 2001-06-27T16:18:10 First round in converting type foo ( ... ) to type foo ( ... ) Other minor formatting issues.
Werner Lemberg 8eb0353f 2001-06-19T23:03:41 Formatting.
David Turner 8edbcabc 2001-06-19T08:28:24 - updated doc for FT_New_Memory_Face - removed lots of compiler warnings in lint-style warning modes (/W4 with Visual C++)
Werner Lemberg cf24d515 2001-06-18T14:23:45 Minor cleanups to remove compiler warnings. * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use `L' for constant. * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto. * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant. * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable. * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants. * src/base/ftobjs.c (FT_Done_Size): Fix return value. (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove unused `memory' variable. * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant. * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_align_edge_points): Remove unused `before' and `after' variables. (ah_hinter_align_weak_points): Remove unused `edge_limit' variable. (ah_hinter_load): Remove unused `new_advance', `start_contour', and `metrics' variables. * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid compiler warning. * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset' variable. * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused `outline' variable. (cff_compute_bias): Use `U' for constant. * src/cid/cidload.c (cid_decrypt): Ditto. * src/psaux/psobjs.c (T1_Decrypt): Ditto. * src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto. * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version' variable. * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top' variable. * src/truetype/ttgload.c (load_truetype_glyph): Remove unused `num_contours' and `ins_offset' variables. (compute_glyph_metrics): Remove unused `Top' and `x_scale' variables. (TT_Load_Glyph): Remove unused `memory' variable. * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
Werner Lemberg 79860707 2001-06-08T21:17:29 Increase `version_info' to 7:0:1. Fixed a bug that returned an invalid linear width for composite TrueType glyphs. * include/internal/tttypes.h (TT_Loader_): Two new elements `linear' and `linear_def'. * src/truetype/ttgload.c (load_truetype_glyph, compute_glyph_metrics): Use it. * include/fttypes.h (FT_ERROR_BASE): New macro. * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it to make source code work with the new error scheme implemented by Werner. * src/base/ftoutln.c (FT_Outline_Render): Ditto.
David Turner 57d4de0e 2001-06-08T13:29:36 fixed a bug that returned an invalid linear width for composite TrueType glyphs fixed source code to work with the new error scheme implemented by Werner
Werner Lemberg 55798126 2001-05-17T06:27:17 formatting
David Turner 61d6b2b9 2001-05-16T17:49:07 * src/truetype/ttgload.c (load_truetype_glyph): fixed a bug in the composite loader spotted by Keith Packard.
David Turner ebe85f59 2001-05-11T14:25:57 * include/freetype/fttrigon.h, src/base/fttrigon.c, src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: adding trigonometric functions to the core API (using Cordic algorithms). * builds/top_level.mk, builds/newline, builds/detect.mk: fixed problems with Make on Windows 2000, as well as problems when "make distclean" is invoked on a non-Unix platform when there is no "config.mk" in the current directory.. * builds/freetype.mk: fixed a problem with object deletions under Dos/Windows/OS/2 systems * src/tools: added new directory to hold tools and test programs moved docmaker.py, glnames.py to it.. * src/tools/docmaker.py: improved the script to add the current date at the footer of each web page (useful to distinguish between versions) * Jamfile: fixed incorrect HDRMACRO argument. * TODO: removed the cubic arc bbox computation note, since it has been fixed recently.. * include/freetype/t1tables.h, include/freetype/config/ftoption.h: formatting
Werner Lemberg 521a2d7a 2001-03-20T22:58:56 * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler. Renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to FT_SFNT_NAMES_H. * docs/docmaker.py: Added generation of INDEX link in table of contents. * INSTALL, docs/BUILD: Updated documentation to indicate that the compilation process has changed slightly (no more `src' required in * builds/*/*-def.mk: Changed the objects directory from "obj" to "objs". * include/freetype/config/ftheader.h: Removed obsolete macros like FT_SOURCE_FILE, etc. and added cache-specific macro definitions that were previously defined in <freetype/ftcache.h>. Added comments to be included in a new API Reference section. * src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each component needs to add its own directory to the include path at compile time. Modified all "rules.mk" and "descrip.mms" accordingly. * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c, src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove compiler warnings in pedantic modes. * include/config/ft2build.h, include/config/ftheader.h: The file top-level <ft2build.h>. * include/config/ftheader.h: Added new section describing the #include macros. the Type 2 glyph charstring (used by conversion programs). * docs/docmaker.py: Added cross-references generation as well as seac emulation provided by the Type 2 endchar operator. * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files, Added support for clipped direct rendering in the smooth renderer. * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
David Turner 8d3a401f 2001-03-20T11:14:24 * builds/*/*-def.mk: changed the objects directory from "obj" to "objs" * include/freetype/config/ftheader.h: removed obsolete macros like FT_SOURCE_FILE, etc.. and added cache-specific macro definitions that were previously defined in <freetype/ftcache.h>. Added comments to be included in a new API Reference section. * src/*/*: removed the use of FT_SOURCE_FILE, etc.. now, each component needs to added its own directory to the include path at compile time. Modified all "rules.mk" and "descrip.mms" accordingly..
Werner Lemberg cc069beb 2000-12-08T16:17:16 cleanups
David Turner 19ed8afe 2000-12-08T02:42:29 - updated all source files to adhere to the new inclusion scheme - the CFF loader now loads the encodings and charset tables though doesn't use them for now
Werner Lemberg ada9503d 2000-11-29T17:48:57 * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c (FT_Set_Renderer): Use FT_EXPORT_DEF. * src/cache/ftcimage.c (FTC_Image_Cache_Lookup), src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset, FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size, FTC_Manager_Register_Cache), src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Ditto. * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init), src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
David Turner 23a0670b 2000-11-08T00:20:25 removed the file <freetype/internal/ftlist.h> and corrected files that depended on it. the ftlist.c function definitions are now FT_EXPORT_DEF instead of FT_BASE_DEF
Werner Lemberg 8ec9dfd9 2000-11-07T23:56:02 Moving doc comments for BASE functions from source to header files.
Werner Lemberg 90a03301 2000-11-07T17:21:11 All function comments are now removed from source files (and moved to the header files if necessary). Some minor fixes to have `make multi' run successfully (with gcc and g++). Fixing compiler warnings.
Werner Lemberg 4b68007b 2000-11-07T06:30:29 Complementing David's changes with formatting, adding documentation, etc. More `*'-convention formatting, adding the `a' resp. `an' prefix to variables.
Werner Lemberg dc72aff4 2000-11-04T08:33:38 Finishing David's latest changes (there were some errors in it).
David Turner 54e75749 2000-11-04T02:52:02 defining new types to hold "internal" fields of public objects: FT_Face_Internal, FT_Size_Internal, FT_Slot_Internal these contain some fields that may change between releases of FreeType, without affecting the size of FT_FaceRec, FT_SizeRec, FT_GlyphSlotRec, etc.., which means that drivers wouldn't need to be recompiled if we only add new fields to an internal structure.. I plan to hack a few things related to the auto-hinter and I need this move to ensure that we will not break binary compatibility between 2.0 and 2.1 :-) - David
David Turner 76a5f623 2000-11-04T01:55:49 major reformatting of the sources: FT_EXPORT_DEF => FT_EXPORT FT_EXPORT_FUNC => FT_EXPORT_DEF BASE_DEF => FT_BASE BASE_FUNC => FT_BASE_DEF LOCAL_DEF => FT_LOCAL LOCAL_FUNC => FT_LOCAL_DEF LOCAL_FUNC_X => FT_CALLBACK_DEF LOCAL_DEF_X => FT_CALLBACK_TABLE FT_CPLUSPLUS => FT_CALLBACK_TABLE_DEF
Werner Lemberg e67e349a 2000-10-13T21:00:36 More fixes to the tutorial. Added artificial Type 1 pid/eid paors to ttnameid.h.
Werner Lemberg eddd9909 2000-10-12T05:05:40 formatting small fixes
David Turner a0be99f1 2000-10-03T18:02:02 changing the linkage type of FT_New_GlyphSlot and FT_Done_GlyphSlot to BASE_DEF instead of FT_EXPORT_DEF
David Turner c9ce9e4e 2000-09-15T17:16:49 small bug-fix
Werner Lemberg f9b03750 2000-09-11T22:50:13 small formatting issues.
Werner Lemberg d1b7475b 2000-08-24T16:29:15 Formatting, small fixes. Adding basic input parameter checking for exported functions.
David Turner 35db7322 2000-08-24T12:39:40 - fixed an horrible FT_LOAD_RENDER bug that returned empty bitmaps !! - tested and fixed the image cache object. I'm performing a few more checks though, and we'll call the cache sub-system completed !!
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...)
David Turner 710354b8 2000-08-16T17:04:22 fixed the bug that prevented bitmap formats to be loaded correctly when the auto-hinter is used (symptom: "winfonts" driver didn't load bitmaps correctly).
Werner Lemberg 05c21b8f 2000-07-29T20:38:19 Formatting.
Just van Rossum e97cb912 2000-07-28T03:13:31 FT_Done_Stream(): do stream->close = 0 after calling stream->close(); this makes it safe to call FT_Done_Stream() more than once. David: please review this; I hope you agree with this minor change.
Just van Rossum 9e830c5d 2000-07-28T01:12:34 Put FT_New_Face() in an #ifndef macintosh switch; ftmac.c provides an extended implementation.
Werner Lemberg 58b17f96 2000-07-27T23:29:08 Formatting.
David Turner c5cdf8bc 2000-07-27T21:40:22 re-adding a "unix-dev.mk". Debugging libtool output is just too much of a pain for me, I prefer a good old static lib without optimizations :-) "make devel" is back on Unix then..
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..
Werner Lemberg 5aa646c5 2000-07-14T06:16:47 Formatting. Fixing a bug in FT_Get_Kerning(). Moving FT_Get_Module_Interface() to ftoutln.c.
Werner Lemberg 2405d14f 2000-07-11T06:12:20 Formatting/Synchronizing. Updating OS/2 bits in ttnameid.h to latest version (as posted on the opentype@ list).
Werner Lemberg 93ac3e39 2000-07-10T21:41:32 Formatting. Synchronizing docs.
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 7fa51b55 2000-07-08T19:51:42 Formatting. Adding some trivial error checking. Adding/Fixing tracing levels.
David Turner 9b3d1c75 2000-07-07T19:47:34 - fixed a leak in the Type 1 driver - updated the CFF driver to support flex opcodes
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++.
Werner Lemberg fbeb41d9 2000-07-02T00:27:53 Formatting. Adding copyright notices. Removing an unnecessary file (smooth.h).
Werner Lemberg a8bbc267 2000-07-01T14:06:46 Formatting as usual... Adding trivial argument checking to some functions. Added dynamic driver interface to cidriver. Minor `version' fixes for macfont and psnames modules. Removed unnecessary files
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 cc9fc49c 2000-06-30T06:21:26 Formatting... Applying some fixes from Tom.
David Turner 5ae831c1 2000-06-30T01:31:22 changes used to implement the auto-hinting support
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 81bb4ad9 2000-06-28T04:19:49 latest clean-ups.. The code compiles with NO WARNINGS with GCC and Visual C++ (also with LCC minus debugging options)
David Turner 74abee8e 2000-06-27T23:31:53 various cleanups to reduce compiler warnings
Werner Lemberg dcd2e14c 2000-06-25T07:43:15 forgotten fixes.
Werner Lemberg a929ba9b 2000-06-25T06:47:11 applying formatting again
David Turner 2a98b3c4 2000-06-23T13:47:55 reduced some nasty memory leaks
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.
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).