This work, written by Dave Arnold <darnold@adobe.com> and fully integrated into FreeType by me, is a donation by Adobe in collaboration with Google. It is vastly superior to the old CFF engine, and it will replace it soon. Right now, it is still off by default, and you have to explicitly select it using the new `hinting-engine' property of the cff driver. For convenience, (most of) the new files are committed separately. * include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro. * include/freetype/ftcffdrv.h: New file to access CFF driver properties. * include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error code. * include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints', and `cf2interp'. * src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'. * src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine' and `no_stem_darkening'. * src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'. * src/cff/cff.c: Include new files. * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle `hinting-engine' and `no-stem-darkening' properties (only the Adobe engine listens to them). * src/cff/cffgload.c: Include `cf2ft.h'. (cff_decoder_prepare): Initialize `current_subfont'. (cff_build_add_point): Handle Adobe engine which uses 16.16 coordinates. (cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING separately. Choose rendering engine based on `hinting_engine' property. * src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe engine. * src/cff/cffobjs.c: Include FT_CFF_DRIVER_H. (cff_driver_init): Set default property values. * src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files. * src/cff/cf2*.*: New files, containing the Adobe engine.
250 lines
12 KiB
C
250 lines
12 KiB
C
/***************************************************************************/
|
|
/* */
|
|
/* fterrdef.h */
|
|
/* */
|
|
/* FreeType error codes (specification). */
|
|
/* */
|
|
/* Copyright 2002, 2004, 2006, 2007, 2010-2013 by */
|
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
|
/* */
|
|
/* This file is part of the FreeType project, and may only be used, */
|
|
/* modified, and distributed under the terms of the FreeType project */
|
|
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
|
/* this file you indicate that you have read the license and */
|
|
/* understand and accept it fully. */
|
|
/* */
|
|
/***************************************************************************/
|
|
|
|
|
|
/*******************************************************************/
|
|
/*******************************************************************/
|
|
/***** *****/
|
|
/***** LIST OF ERROR CODES/MESSAGES *****/
|
|
/***** *****/
|
|
/*******************************************************************/
|
|
/*******************************************************************/
|
|
|
|
|
|
/* You need to define both FT_ERRORDEF_ and FT_NOERRORDEF_ before */
|
|
/* including this file. */
|
|
|
|
|
|
/* generic errors */
|
|
|
|
FT_NOERRORDEF_( Ok, 0x00, \
|
|
"no error" )
|
|
|
|
FT_ERRORDEF_( Cannot_Open_Resource, 0x01, \
|
|
"cannot open resource" )
|
|
FT_ERRORDEF_( Unknown_File_Format, 0x02, \
|
|
"unknown file format" )
|
|
FT_ERRORDEF_( Invalid_File_Format, 0x03, \
|
|
"broken file" )
|
|
FT_ERRORDEF_( Invalid_Version, 0x04, \
|
|
"invalid FreeType version" )
|
|
FT_ERRORDEF_( Lower_Module_Version, 0x05, \
|
|
"module version is too low" )
|
|
FT_ERRORDEF_( Invalid_Argument, 0x06, \
|
|
"invalid argument" )
|
|
FT_ERRORDEF_( Unimplemented_Feature, 0x07, \
|
|
"unimplemented feature" )
|
|
FT_ERRORDEF_( Invalid_Table, 0x08, \
|
|
"broken table" )
|
|
FT_ERRORDEF_( Invalid_Offset, 0x09, \
|
|
"broken offset within table" )
|
|
FT_ERRORDEF_( Array_Too_Large, 0x0A, \
|
|
"array allocation size too large" )
|
|
FT_ERRORDEF_( Missing_Module, 0x0B, \
|
|
"missing module" )
|
|
FT_ERRORDEF_( Missing_Property, 0x0C, \
|
|
"missing property" )
|
|
|
|
/* glyph/character errors */
|
|
|
|
FT_ERRORDEF_( Invalid_Glyph_Index, 0x10, \
|
|
"invalid glyph index" )
|
|
FT_ERRORDEF_( Invalid_Character_Code, 0x11, \
|
|
"invalid character code" )
|
|
FT_ERRORDEF_( Invalid_Glyph_Format, 0x12, \
|
|
"unsupported glyph image format" )
|
|
FT_ERRORDEF_( Cannot_Render_Glyph, 0x13, \
|
|
"cannot render this glyph format" )
|
|
FT_ERRORDEF_( Invalid_Outline, 0x14, \
|
|
"invalid outline" )
|
|
FT_ERRORDEF_( Invalid_Composite, 0x15, \
|
|
"invalid composite glyph" )
|
|
FT_ERRORDEF_( Too_Many_Hints, 0x16, \
|
|
"too many hints" )
|
|
FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, \
|
|
"invalid pixel size" )
|
|
|
|
/* handle errors */
|
|
|
|
FT_ERRORDEF_( Invalid_Handle, 0x20, \
|
|
"invalid object handle" )
|
|
FT_ERRORDEF_( Invalid_Library_Handle, 0x21, \
|
|
"invalid library handle" )
|
|
FT_ERRORDEF_( Invalid_Driver_Handle, 0x22, \
|
|
"invalid module handle" )
|
|
FT_ERRORDEF_( Invalid_Face_Handle, 0x23, \
|
|
"invalid face handle" )
|
|
FT_ERRORDEF_( Invalid_Size_Handle, 0x24, \
|
|
"invalid size handle" )
|
|
FT_ERRORDEF_( Invalid_Slot_Handle, 0x25, \
|
|
"invalid glyph slot handle" )
|
|
FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26, \
|
|
"invalid charmap handle" )
|
|
FT_ERRORDEF_( Invalid_Cache_Handle, 0x27, \
|
|
"invalid cache manager handle" )
|
|
FT_ERRORDEF_( Invalid_Stream_Handle, 0x28, \
|
|
"invalid stream handle" )
|
|
|
|
/* driver errors */
|
|
|
|
FT_ERRORDEF_( Too_Many_Drivers, 0x30, \
|
|
"too many modules" )
|
|
FT_ERRORDEF_( Too_Many_Extensions, 0x31, \
|
|
"too many extensions" )
|
|
|
|
/* memory errors */
|
|
|
|
FT_ERRORDEF_( Out_Of_Memory, 0x40, \
|
|
"out of memory" )
|
|
FT_ERRORDEF_( Unlisted_Object, 0x41, \
|
|
"unlisted object" )
|
|
|
|
/* stream errors */
|
|
|
|
FT_ERRORDEF_( Cannot_Open_Stream, 0x51, \
|
|
"cannot open stream" )
|
|
FT_ERRORDEF_( Invalid_Stream_Seek, 0x52, \
|
|
"invalid stream seek" )
|
|
FT_ERRORDEF_( Invalid_Stream_Skip, 0x53, \
|
|
"invalid stream skip" )
|
|
FT_ERRORDEF_( Invalid_Stream_Read, 0x54, \
|
|
"invalid stream read" )
|
|
FT_ERRORDEF_( Invalid_Stream_Operation, 0x55, \
|
|
"invalid stream operation" )
|
|
FT_ERRORDEF_( Invalid_Frame_Operation, 0x56, \
|
|
"invalid frame operation" )
|
|
FT_ERRORDEF_( Nested_Frame_Access, 0x57, \
|
|
"nested frame access" )
|
|
FT_ERRORDEF_( Invalid_Frame_Read, 0x58, \
|
|
"invalid frame read" )
|
|
|
|
/* raster errors */
|
|
|
|
FT_ERRORDEF_( Raster_Uninitialized, 0x60, \
|
|
"raster uninitialized" )
|
|
FT_ERRORDEF_( Raster_Corrupted, 0x61, \
|
|
"raster corrupted" )
|
|
FT_ERRORDEF_( Raster_Overflow, 0x62, \
|
|
"raster overflow" )
|
|
FT_ERRORDEF_( Raster_Negative_Height, 0x63, \
|
|
"negative height while rastering" )
|
|
|
|
/* cache errors */
|
|
|
|
FT_ERRORDEF_( Too_Many_Caches, 0x70, \
|
|
"too many registered caches" )
|
|
|
|
/* TrueType and SFNT errors */
|
|
|
|
FT_ERRORDEF_( Invalid_Opcode, 0x80, \
|
|
"invalid opcode" )
|
|
FT_ERRORDEF_( Too_Few_Arguments, 0x81, \
|
|
"too few arguments" )
|
|
FT_ERRORDEF_( Stack_Overflow, 0x82, \
|
|
"stack overflow" )
|
|
FT_ERRORDEF_( Code_Overflow, 0x83, \
|
|
"code overflow" )
|
|
FT_ERRORDEF_( Bad_Argument, 0x84, \
|
|
"bad argument" )
|
|
FT_ERRORDEF_( Divide_By_Zero, 0x85, \
|
|
"division by zero" )
|
|
FT_ERRORDEF_( Invalid_Reference, 0x86, \
|
|
"invalid reference" )
|
|
FT_ERRORDEF_( Debug_OpCode, 0x87, \
|
|
"found debug opcode" )
|
|
FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88, \
|
|
"found ENDF opcode in execution stream" )
|
|
FT_ERRORDEF_( Nested_DEFS, 0x89, \
|
|
"nested DEFS" )
|
|
FT_ERRORDEF_( Invalid_CodeRange, 0x8A, \
|
|
"invalid code range" )
|
|
FT_ERRORDEF_( Execution_Too_Long, 0x8B, \
|
|
"execution context too long" )
|
|
FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C, \
|
|
"too many function definitions" )
|
|
FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D, \
|
|
"too many instruction definitions" )
|
|
FT_ERRORDEF_( Table_Missing, 0x8E, \
|
|
"SFNT font table missing" )
|
|
FT_ERRORDEF_( Horiz_Header_Missing, 0x8F, \
|
|
"horizontal header (hhea) table missing" )
|
|
FT_ERRORDEF_( Locations_Missing, 0x90, \
|
|
"locations (loca) table missing" )
|
|
FT_ERRORDEF_( Name_Table_Missing, 0x91, \
|
|
"name table missing" )
|
|
FT_ERRORDEF_( CMap_Table_Missing, 0x92, \
|
|
"character map (cmap) table missing" )
|
|
FT_ERRORDEF_( Hmtx_Table_Missing, 0x93, \
|
|
"horizontal metrics (hmtx) table missing" )
|
|
FT_ERRORDEF_( Post_Table_Missing, 0x94, \
|
|
"PostScript (post) table missing" )
|
|
FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95, \
|
|
"invalid horizontal metrics" )
|
|
FT_ERRORDEF_( Invalid_CharMap_Format, 0x96, \
|
|
"invalid character map (cmap) format" )
|
|
FT_ERRORDEF_( Invalid_PPem, 0x97, \
|
|
"invalid ppem value" )
|
|
FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98, \
|
|
"invalid vertical metrics" )
|
|
FT_ERRORDEF_( Could_Not_Find_Context, 0x99, \
|
|
"could not find context" )
|
|
FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A, \
|
|
"invalid PostScript (post) table format" )
|
|
FT_ERRORDEF_( Invalid_Post_Table, 0x9B, \
|
|
"invalid PostScript (post) table" )
|
|
|
|
/* CFF, CID, and Type 1 errors */
|
|
|
|
FT_ERRORDEF_( Syntax_Error, 0xA0, \
|
|
"opcode syntax error" )
|
|
FT_ERRORDEF_( Stack_Underflow, 0xA1, \
|
|
"argument stack underflow" )
|
|
FT_ERRORDEF_( Ignore, 0xA2, \
|
|
"ignore" )
|
|
FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3, \
|
|
"no Unicode glyph name found" )
|
|
FT_ERRORDEF_( Glyph_Too_Big, 0xA4, \
|
|
"glyph to big for hinting" )
|
|
|
|
/* BDF errors */
|
|
|
|
FT_ERRORDEF_( Missing_Startfont_Field, 0xB0, \
|
|
"`STARTFONT' field missing" )
|
|
FT_ERRORDEF_( Missing_Font_Field, 0xB1, \
|
|
"`FONT' field missing" )
|
|
FT_ERRORDEF_( Missing_Size_Field, 0xB2, \
|
|
"`SIZE' field missing" )
|
|
FT_ERRORDEF_( Missing_Fontboundingbox_Field, 0xB3, \
|
|
"`FONTBOUNDINGBOX' field missing" )
|
|
FT_ERRORDEF_( Missing_Chars_Field, 0xB4, \
|
|
"`CHARS' field missing" )
|
|
FT_ERRORDEF_( Missing_Startchar_Field, 0xB5, \
|
|
"`STARTCHAR' field missing" )
|
|
FT_ERRORDEF_( Missing_Encoding_Field, 0xB6, \
|
|
"`ENCODING' field missing" )
|
|
FT_ERRORDEF_( Missing_Bbx_Field, 0xB7, \
|
|
"`BBX' field missing" )
|
|
FT_ERRORDEF_( Bbx_Too_Big, 0xB8, \
|
|
"`BBX' too big" )
|
|
FT_ERRORDEF_( Corrupted_Font_Header, 0xB9, \
|
|
"Font header corrupted or missing fields" )
|
|
FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, \
|
|
"Font glyphs corrupted or missing fields" )
|
|
|
|
|
|
/* END */
|