ref: 438f8cd27baca31a067f13afca5dfa58e3147409
dir: /src/truetype/ttdriver.h/
/***************************************************************************/ /* */ /* ttdriver.h */ /* */ /* High-level TrueType driver interface (specification). */ /* */ /* Copyright 1996-1999 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. */ /* */ /***************************************************************************/ #ifndef TTDRIVER_H #define TTDRIVER_H #include <freetype.h> #include <ftdriver.h> #include <ttobjs.h> #include <tterrors.h> #include <ttnameid.h> /*************************************************************************/ /* */ /* <FuncType> */ /* TTDriver_getFontData */ /* */ /* <Description> */ /* Returns either a single font table or the whole font file into */ /* caller's memory. This function mimics the GetFontData() API */ /* function found in Windows. */ /* */ /* <Input> */ /* face :: A handle to the source TrueType face object. */ /* */ /* tag :: A 32-bit integer used to name the table you want to */ /* read. Use the macro MAKE_TT_TAG (defined in freetype.h) */ /* to create one. Use the value 0 if you want to access */ /* the whole file instead. */ /* */ /* offset :: The offset from the start of the table or file from */ /* which you want to read bytes. */ /* */ /* buffer :: The address of the target/read buffer where data will be */ /* copied. */ /* */ /* <InOut> */ /* length :: The length in bytes of the data to read. If it is set */ /* to 0 when this function is called, it will return */ /* immediately, setting the value of `length' to the */ /* requested table's size (or the whole font file if the */ /* tag is 0). It is thus possible to allocate and read an */ /* arbitrary table in two successive calls. */ /* <Return> */ /* TrueType error code. 0 means success. */ /* */ typedef TT_Error (*TTDriver_getFontData)( TT_Face face, TT_ULong tag, TT_ULong offset, void* buffer, TT_Long* length ); /*************************************************************************/ /* */ /* <FuncType> */ /* TTDriver_getFaceWidths */ /* */ /* <Description> */ /* Returns the widths and/or heights of a given range of glyph from */ /* a face. */ /* */ /* <Input> */ /* face :: A handle to the source FreeType face object. */ /* */ /* first_glyph :: The first glyph in the range. */ /* */ /* last_glyph :: The last glyph in the range. */ /* */ /* <Output> */ /* widths :: The address of the table receiving the widths */ /* expressed in font units (UShorts). Set this */ /* parameter to NULL if you're not interested in these */ /* values. */ /* */ /* heights :: The address of the table receiving the heights */ /* expressed in font units (UShorts). Set this */ /* parameter to NULL if you're not interested in these */ /* values. */ /* */ /* <Return> */ /* Error code. 0 means success. */ /* */ typedef TT_Error (*TTDriver_getFaceWidths)( TT_Face face, TT_UShort first_glyph, TT_UShort last_glyph, TT_UShort* widths, TT_UShort* heights ); /*************************************************************************/ /* */ /* <Struct> */ /* TT_DriverInterface */ /* */ /* <Description> */ /* The TrueType-specific interface of this driver. Note that some of */ /* the methods defined here are optional, as they're only used for */ /* for specific tasks of the driver. */ /* */ /* <Fields> */ /* get_font_data :: See the declaration of TTDriver_getFontData(). */ /* get_face_widths :: See the declaration of */ /* TTDriver_getFaceWidths(). */ /* */ typedef struct TT_DriverInterface_ { TTDriver_getFontData get_font_data; TTDriver_getFaceWidths get_face_widths; } TT_DriverInterface; EXPORT_DEF const FT_DriverInterface tt_driver_interface; EXPORT_DEF const TT_DriverInterface tt_format_interface; #endif /* TTDRIVER_H */ /* END */