/***************************************************************************/ /* */ /* otlcommn.h */ /* */ /* OpenType layout support, common tables (specification). */ /* */ /* Copyright 2002 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 __OTLCOMMN_H__ #define __OTLCOMMN_H__ #include "otlayout.h" OTL_BEGIN_HEADER /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** COVERAGE TABLE *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* validate coverage table */ OTL_LOCALDEF( void ) otl_coverage_validate( OTL_Bytes base, OTL_Validator valid ); /* return number of covered glyphs */ OTL_LOCALDEF( OTL_UInt ) otl_coverage_get_count( OTL_Bytes base ); /* Return the coverage index corresponding to a glyph glyph index. */ /* Return -1 if the glyph isn't covered. */ OTL_LOCALDEF( OTL_Int ) otl_coverage_get_index( OTL_Bytes base, OTL_UInt glyph_index ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** CLASS DEFINITION TABLE *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* validate class definition table */ OTL_LOCALDEF( void ) otl_class_definition_validate( OTL_Bytes table, OTL_Validator valid ); /* return class value for a given glyph index */ OTL_LOCALDEF( OTL_UInt ) otl_class_definition_get_value( OTL_Bytes table, OTL_UInt glyph_index ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** DEVICE TABLE *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* validate a device table */ OTL_LOCALDEF( void ) otl_device_table_validate( OTL_Bytes table, OTL_Validator valid ); /* return a device table's first size */ OTL_LOCALDEF( OTL_UInt ) otl_device_table_get_start( OTL_Bytes table ); /* return a device table's last size */ OTL_LOCALDEF( OTL_UInt ) otl_device_table_get_end( OTL_Bytes table ); /* return pixel adjustment for a given size */ OTL_LOCALDEF( OTL_Int ) otl_device_table_get_delta( OTL_Bytes table, OTL_UInt size ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** LOOKUPS *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* validate lookup table */ OTL_LOCALDEF( void ) otl_lookup_validate( OTL_Bytes table, OTL_Validator valid ); /* return number of sub-tables in a lookup */ OTL_LOCALDEF( OTL_UInt ) otl_lookup_get_count( OTL_Bytes table ); /* return lookup sub-table */ OTL_LOCALDEF( OTL_Bytes ) otl_lookup_get_table( OTL_Bytes table, OTL_UInt idx ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** LOOKUP LISTS *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* validate lookup list */ OTL_LOCALDEF( void ) otl_lookup_list_validate( OTL_Bytes table, OTL_Validator valid ); /* return number of lookups in list */ OTL_LOCALDEF( OTL_UInt ) otl_lookup_list_get_count( OTL_Bytes table ); /* return a given lookup from a list */ OTL_LOCALDEF( OTL_Bytes ) otl_lookup_list_get_lookup( OTL_Bytes table, OTL_UInt idx ); /* return lookup sub-table from a list */ OTL_LOCALDEF( OTL_Bytes ) otl_lookup_list_get_table( OTL_Bytes table, OTL_UInt lookup_index, OTL_UInt table_index ); /* iterate over lookup list */ OTL_LOCALDEF( void ) otl_lookup_list_foreach( OTL_Bytes table, OTL_ForeachFunc func, OTL_Pointer func_data ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** FEATURES *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* validate feature table */ OTL_LOCALDEF( void ) otl_feature_validate( OTL_Bytes table, OTL_Validator valid ); /* return feature's lookup count */ OTL_LOCALDEF( OTL_UInt ) otl_feature_get_count( OTL_Bytes table ); /* get several lookups indices from a feature. returns the number of */ /* lookups grabbed */ OTL_LOCALDEF( OTL_UInt ) otl_feature_get_lookups( OTL_Bytes table, OTL_UInt start, OTL_UInt count, OTL_UInt *lookups ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** FEATURE LIST *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /* validate a feature list */ OTL_LOCALDEF( void ) otl_feature_list_validate( OTL_Bytes table, OTL_Validator valid ); /* return number of features in list */ OTL_LOCALDEF( OTL_UInt ) otl_feature_list_get_count( OTL_Bytes table ); /* return a given feature from a list */ OTL_LOCALDEF( OTL_Bytes ) otl_feature_list_get_feature( OTL_Bytes table, OTL_UInt idx ); /* iterate over all features in a list */ OTL_LOCALDEF( void ) otl_feature_list_foreach( OTL_Bytes table, OTL_ForeachFunc func, OTL_Pointer func_data ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** LANGUAGE SYSTEM *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ OTL_LOCAL( void ) otl_lang_validate( OTL_Bytes table, OTL_Validator valid ); OTL_LOCAL( OTL_UInt ) otl_lang_get_req_feature( OTL_Bytes table ); OTL_LOCAL( OTL_UInt ) otl_lang_get_count( OTL_Bytes table ); OTL_LOCAL( OTL_UInt ) otl_lang_get_features( OTL_Bytes table, OTL_UInt start, OTL_UInt count, OTL_UInt *features ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** SCRIPTS *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ OTL_LOCAL( void ) otl_script_list_validate( OTL_Bytes list, OTL_Validator valid ); OTL_LOCAL( OTL_Bytes ) otl_script_list_get_script( OTL_Bytes table ); /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** LOOKUP LISTS *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ OTL_LOCAL( void ) otl_lookup_list_validate( OTL_Bytes list, OTL_UInt type_count, OTL_ValidateFunc* type_funcs, OTL_Validator valid ); /* */ OTL_END_HEADER #endif /* __OTLCOMMN_H__ */ /* END */