298 lines
18 KiB
C
298 lines
18 KiB
C
/***************************************************************************/
|
|
/* */
|
|
/* otload.h */
|
|
/* */
|
|
/* OpenType layout loader functions (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 OTLOAD_H
|
|
#define OTLOAD_H
|
|
|
|
#include <otlayout.h>
|
|
#include <ftstream.h>
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Load_Script_List */
|
|
/* */
|
|
/* <Description> */
|
|
/* Loads an OpenType Script List from a font resource. */
|
|
/* */
|
|
/* <Input> */
|
|
/* list :: The target script list. */
|
|
/* stream :: The input stream. */
|
|
/* */
|
|
/* <Return> */
|
|
/* TrueType error code. 0 means success. */
|
|
/* */
|
|
LOCAL_DEF
|
|
TT_Error OTL_Load_Script_List( OTL_Script_List* list,
|
|
FT_Stream stream );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Load_Feature_List */
|
|
/* */
|
|
/* <Description> */
|
|
/* Loads an OpenType Feature List from a font resource. */
|
|
/* */
|
|
/* <Input> */
|
|
/* list :: The target feature list. */
|
|
/* stream :: The input stream. */
|
|
/* */
|
|
/* <Return> */
|
|
/* TrueType error code. 0 means success. */
|
|
/* */
|
|
LOCAL_DEF
|
|
TT_Error OTL_Load_Feature_List( OTL_Feature_List* list,
|
|
FT_Stream stream );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Load_Lookup_List */
|
|
/* */
|
|
/* <Description> */
|
|
/* Loads an OpenType Lookup List from a font resource. */
|
|
/* */
|
|
/* <Input> */
|
|
/* list :: The target lookup list. */
|
|
/* stream :: The input stream. */
|
|
/* */
|
|
/* <Return> */
|
|
/* TrueType error code. 0 means success. */
|
|
/* */
|
|
/* <Note> */
|
|
/* This function does NOT load the lookup sub-tables. Instead, it */
|
|
/* stores the file offsets of the particular table in each lookup */
|
|
/* element. It is up to the caller to load these sub-tables. This */
|
|
/* can be done more easily with OTL_Iterate_Lookup_List(). */
|
|
/* */
|
|
LOCAL_DEF
|
|
TT_Error OTL_Load_Lookup_List( OTL_Lookup_List* list,
|
|
FT_Stream stream );
|
|
|
|
|
|
typedef int OTL_Lookup_Iterator( OTL_Lookup* lookup,
|
|
void* closure );
|
|
|
|
|
|
typedef void OTL_Lookup_Destructor( OTL_Lookup* lookup,
|
|
FT_System system );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Iterate_Lookup_List */
|
|
/* */
|
|
/* <Description> */
|
|
/* Scans an OpenType Lookup List. This can be used to load the */
|
|
/* Lookup sub-tables in a GSUB or GPOS loader. */
|
|
/* */
|
|
/* <Input> */
|
|
/* list :: The source list. */
|
|
/* iterator :: The iterator -- a function which is called on each */
|
|
/* element of the list. */
|
|
/* closure :: User-specified data which is passed to each iterator */
|
|
/* with the lookup element pointer. */
|
|
/* */
|
|
/* <Return> */
|
|
/* If one iterator call returns a non-zero `result', the list parsing */
|
|
/* is aborted and the value is returned to the caller. Otherwise, */
|
|
/* the function returns 0 when the list has been parsed completely. */
|
|
/* */
|
|
LOCAL_DEF
|
|
TT_Error OTL_Iterate_Lookup_List( OTL_Lookup_List* list,
|
|
OTL_Lookup_Iterator iterator,
|
|
void* closure );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Load_Coverage */
|
|
/* */
|
|
/* <Description> */
|
|
/* Loads an OpenType Coverage table from a font resource. */
|
|
/* */
|
|
/* <Input> */
|
|
/* coverage :: The target coverage. */
|
|
/* stream :: The input stream. */
|
|
/* */
|
|
/* <Return> */
|
|
/* TrueType error code. 0 means success. */
|
|
/* */
|
|
LOCAL_FUNC
|
|
TT_Error OTL_Load_Coverage( OTL_Coverage* coverage,
|
|
FT_Stream stream );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Load_Class_Def */
|
|
/* */
|
|
/* <Description> */
|
|
/* Loads an OpenType Class Definition table from a resource. */
|
|
/* */
|
|
/* <Input> */
|
|
/* class_def :: The target class definition. */
|
|
/* stream :: The input stream. */
|
|
/* */
|
|
/* <Return> */
|
|
/* TrueType error code. 0 means success. */
|
|
/* */
|
|
LOCAL_DEF
|
|
TT_Error OTL_Load_Class_Def( OTL_Class_Def* class_def,
|
|
FT_Stream stream );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Load_Device */
|
|
/* */
|
|
/* <Description> */
|
|
/* Loads an OpenType Device table from a font resource. */
|
|
/* */
|
|
/* <Input> */
|
|
/* device :: The target device table. */
|
|
/* stream :: The input stream. */
|
|
/* */
|
|
/* <Return> */
|
|
/* TrueType error code. 0 means success. */
|
|
/* */
|
|
LOCAL_DEF
|
|
TT_Error OTL_Load_Device( OTL_Device* device,
|
|
FT_Stream stream );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Free_Script_List */
|
|
/* */
|
|
/* <Description> */
|
|
/* Releases a given OpenType Script list. */
|
|
/* */
|
|
/* <Input> */
|
|
/* list :: The target script list. */
|
|
/* system :: The current system object. */
|
|
/* */
|
|
LOCAL_DEF
|
|
void OTL_Free_Script_List( OTL_Script_List* list,
|
|
FT_System system );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Free_Features_List */
|
|
/* */
|
|
/* <Description> */
|
|
/* Releases a given OpenType Features list. */
|
|
/* */
|
|
/* <Input> */
|
|
/* list :: The target feature list. */
|
|
/* system :: The current system object. */
|
|
/* */
|
|
LOCAL_DEF
|
|
void OTL_Free_Features_List( OTL_Feature_List* list,
|
|
FT_System system );
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Free_Lookup_List */
|
|
/* */
|
|
/* <Description> */
|
|
/* Releases a given OpenType Lookup list. Uses a destructor called */
|
|
/* to destroy the Lookup sub-tables. */
|
|
/* */
|
|
/* <Input> */
|
|
/* list :: The target lookup list. */
|
|
/* system :: The current system object. */
|
|
/* destructor :: A destructor function called on each lookup element. */
|
|
/* Can be used to destroy sub-tables. Ignored if NULL. */
|
|
/* */
|
|
LOCAL_DEF
|
|
void OTL_Free_Lookup_List( OTL_Lookup_List* list,
|
|
FT_System system,
|
|
OTL_Lookup_Destructor destroy );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Free_Coverage */
|
|
/* */
|
|
/* <Description> */
|
|
/* Releases a given OpenType Coverage table. */
|
|
/* */
|
|
/* <Input> */
|
|
/* coverage :: The target coverage. */
|
|
/* system :: The current system object. */
|
|
/* */
|
|
LOCAL_DEF
|
|
void OTL_Free_Coverage( OTL_Coverage* coverage,
|
|
FT_System system );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Free_Class_Def */
|
|
/* */
|
|
/* <Description> */
|
|
/* Releases a given OpenType Class Definition table. */
|
|
/* */
|
|
/* <Input> */
|
|
/* class_def :: The target class definition. */
|
|
/* system :: The current system object. */
|
|
/* */
|
|
LOCAL_DEF
|
|
void OTL_Free_Class_Def( OTL_Class_Def* class_def,
|
|
FT_System system );
|
|
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* <Function> */
|
|
/* OTL_Free_Device */
|
|
/* */
|
|
/* <Description> */
|
|
/* Releases a given OpenType Layout Device table. */
|
|
/* */
|
|
/* <Input> */
|
|
/* device :: The target device table. */
|
|
/* system :: The current system object. */
|
|
/* */
|
|
LOCAL_DEF
|
|
void OTL_Free_Device( OTL_Device* device,
|
|
FT_System system );
|
|
|
|
|
|
#endif /* OTLOAD_H */
|
|
|
|
|
|
/* END */
|