142 lines
8.3 KiB
C
142 lines
8.3 KiB
C
|
/***************************************************************************/
|
||
|
/* */
|
||
|
/* 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 */
|