[SOLVED] CS /***************************************************************************/

$25

File Name: CS_/***************************************************************************/.zip
File Size: 753.6 KB

5/5 - (1 vote)

/***************************************************************************/
/* */
/*ftgxval.h*/
/* */
/*FreeType API for validating TrueTypeGX/AAT tables (specification). */
/* */
/*Copyright 2004-2015 by */
/*Masatake YAMATO, Redhat K.K, */
/*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.*/
/* */
/***************************************************************************/

/***************************************************************************/
/* */
/* gxvalid is derived from both gxlayout module and otvalid module.*/
/* Development of gxlayout is supported by the Information-technology*/
/* Promotion Agency(IPA), Japan. */
/* */
/***************************************************************************/

#ifndef __FTGXVAL_H__
#define __FTGXVAL_H__

#include
#include FT_FREETYPE_H

#ifdef FREETYPE_H
#error freetype.h of FreeType 1 has been loaded!
#error Please fix the directory search order for header files
#error so that freetype.h of FreeType 2 is found first.
#endif

FT_BEGIN_HEADER

/*************************************************************************/
/* */
/*

*/
/*gx_validation*/
/* */
/* */<br />/*TrueTypeGX/AAT Validation*/<br />/* */<br />/*<abstract> */ <br /> /*An API to validate TrueTypeGX/AAT tables.*/ <br /> /* */ <br /> /* <description>*/<br />/*This section contains the declaration of functions to validate */<br />/*some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd,*/<br />/*trak, prop, lcar). */<br />/* */<br />/*<order> */ <br /> /*FT_TrueTypeGX_Validate */ <br /> /*FT_TrueTypeGX_Free */ <br /> /* */ <br /> /*FT_ClassicKern_Validate*/ <br /> /*FT_ClassicKern_Free*/ <br /> /* */ <br /> /*FT_VALIDATE_GX_LENGTH*/ <br /> /*FT_VALIDATE_GXXXX*/ <br /> /*FT_VALIDATE_CKERNXXX */ <br /> /* */ <br /> /*************************************************************************/</order> </description></abstract>

/*************************************************************************/
/* */
/* */
/* Warning: Use FT_VALIDATE_XXX to validate a table. */
/*Following definitions are for gxvalid developers.*/
/* */
/* */
/*************************************************************************/

#define FT_VALIDATE_feat_INDEX 0
#define FT_VALIDATE_mort_INDEX 1
#define FT_VALIDATE_morx_INDEX 2
#define FT_VALIDATE_bsln_INDEX 3
#define FT_VALIDATE_just_INDEX 4
#define FT_VALIDATE_kern_INDEX 5
#define FT_VALIDATE_opbd_INDEX 6
#define FT_VALIDATE_trak_INDEX 7
#define FT_VALIDATE_prop_INDEX 8
#define FT_VALIDATE_lcar_INDEX 9
#define FT_VALIDATE_GX_LAST_INDEXFT_VALIDATE_lcar_INDEX

/*************************************************************************
*
* @macro:
* FT_VALIDATE_GX_LENGTH
*
* @description:
* The number of tables checked in this module.Use it as a parameter
* for the `table-length argument of function @FT_TrueTypeGX_Validate.
*/
#define FT_VALIDATE_GX_LENGTH (FT_VALIDATE_GX_LAST_INDEX + 1)

/* */

/* Up to 0x1000 is used by otvalid.
Ox2xxx is reserved for feature OT extension. */
#define FT_VALIDATE_GX_START 0x4000
#define FT_VALIDATE_GX_BITFIELD( tag )
( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX ) /************************************************************************ @enum:*FT_VALIDATE_GXXXX** @description:*A list of bit-field constants used with @FT_TrueTypeGX_Validate to*indicate which TrueTypeGX/AAT Type tables should be validated.** @values:*FT_VALIDATE_feat ::*Validate `feat’ table.**FT_VALIDATE_mort ::*Validate `mort’ table.**FT_VALIDATE_morx ::*Validate `morx’ table.**FT_VALIDATE_bsln ::*Validate `bsln’ table.**FT_VALIDATE_just ::*Validate `just’ table.**FT_VALIDATE_kern ::*Validate `kern’ table.**FT_VALIDATE_opbd ::*Validate `opbd’ table.**FT_VALIDATE_trak ::*Validate `trak’ table.**FT_VALIDATE_prop ::*Validate `prop’ table.**FT_VALIDATE_lcar ::*Validate `lcar’ table.**FT_VALIDATE_GX ::*Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern,*opbd, trak, prop and lcar).**/#define FT_VALIDATE_featFT_VALIDATE_GX_BITFIELD( feat )#define FT_VALIDATE_mortFT_VALIDATE_GX_BITFIELD( mort )#define FT_VALIDATE_morxFT_VALIDATE_GX_BITFIELD( morx )#define FT_VALIDATE_bslnFT_VALIDATE_GX_BITFIELD( bsln )#define FT_VALIDATE_justFT_VALIDATE_GX_BITFIELD( just )#define FT_VALIDATE_kernFT_VALIDATE_GX_BITFIELD( kern )#define FT_VALIDATE_opbdFT_VALIDATE_GX_BITFIELD( opbd )#define FT_VALIDATE_trakFT_VALIDATE_GX_BITFIELD( trak )#define FT_VALIDATE_propFT_VALIDATE_GX_BITFIELD( prop )#define FT_VALIDATE_lcarFT_VALIDATE_GX_BITFIELD( lcar )#define FT_VALIDATE_GX( FT_VALIDATE_feat | FT_VALIDATE_mort | FT_VALIDATE_morx | FT_VALIDATE_bsln | FT_VALIDATE_just | FT_VALIDATE_kern | FT_VALIDATE_opbd | FT_VALIDATE_trak | FT_VALIDATE_prop | FT_VALIDATE_lcar ) /************************************************************************ @function:*FT_TrueTypeGX_Validate** @description:*Validate various TrueTypeGX tables to assure that all offsets and*indices are valid.The idea is that a higher-level library that*actually does the text layout can access those tables without*error checking (which can be quite time consuming).** @input:*face ::* A handle to the input face.**validation_flags ::* A bit field that specifies the tables to be validated.See* @FT_VALIDATE_GXXXX for possible values.**table_length ::* The size of the `tables’ array.Normally, @FT_VALIDATE_GX_LENGTH* should be passed.** @output:*tables ::* The array where all validated sfnt tables are stored.* The array itself must be allocated by a client.** @return:* FreeType error code.0~means success.** @note:* This function only works with TrueTypeGX fonts, returning an error* otherwise.** After use, the application should deallocate the buffers pointed to by* each `tables’ element, by calling @FT_TrueTypeGX_Free.A NULL value* indicates that the table either doesn’t exist in the font, the* application hasn’t asked for validation, or the validator doesn’t have* the ability to validate the sfnt table.*/FT_EXPORT( FT_Error )FT_TrueTypeGX_Validate( FT_Face face,FT_UInt validation_flags,FT_Bytestables[FT_VALIDATE_GX_LENGTH],FT_UInt table_length ); /************************************************************************ @function:*FT_TrueTypeGX_Free** @description:*Free the buffer allocated by TrueTypeGX validator.** @input:*face ::* A handle to the input face.**table ::* The pointer to the buffer allocated by* @FT_TrueTypeGX_Validate.** @note:* This function must be used to free the buffer allocated by* @FT_TrueTypeGX_Validate only.*/FT_EXPORT( void )FT_TrueTypeGX_Free( FT_Face face,FT_Bytestable ); /************************************************************************ @enum:*FT_VALIDATE_CKERNXXX** @description:*A list of bit-field constants used with @FT_ClassicKern_Validate*to indicate the classic kern dialect or dialects.If the selected*type doesn’t fit, @FT_ClassicKern_Validate regards the table as*invalid.** @values:*FT_VALIDATE_MS ::*Handle the `kern’ table as a classic Microsoft kern table.**FT_VALIDATE_APPLE ::*Handle the `kern’ table as a classic Apple kern table.**FT_VALIDATE_CKERN ::*Handle the `kern’ as either classic Apple or Microsoft kern table.*/#define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 )#define FT_VALIDATE_APPLE( FT_VALIDATE_GX_START << 1 )#define FT_VALIDATE_CKERN( FT_VALIDATE_MS | FT_VALIDATE_APPLE ) /************************************************************************ @function:*FT_ClassicKern_Validate** @description:*Validate classic (16-bit format) kern table to assure that the offsets*and indices are valid.The idea is that a higher-level library that*actually does the text layout can access those tables without error*checking (which can be quite time consuming).**The `kern’ table validator in @FT_TrueTypeGX_Validate deals with both*the new 32-bit format and the classic 16-bit format, while*FT_ClassicKern_Validate only supports the classic 16-bit format.** @input:*face ::* A handle to the input face.**validation_flags ::* A bit field that specifies the dialect to be validated.See* @FT_VALIDATE_CKERNXXX for possible values.** @output:*ckern_table ::* A pointer to the kern table.** @return:* FreeType error code.0~means success.** @note:* After use, the application should deallocate the buffers pointed to by* `ckern_table’, by calling @FT_ClassicKern_Free.A NULL value* indicates that the table doesn’t exist in the font.*/FT_EXPORT( FT_Error )FT_ClassicKern_Validate( FT_Faceface, FT_UIntvalidation_flags, FT_Bytes*ckern_table ); /************************************************************************ @function:*FT_ClassicKern_Free** @description:*Free the buffer allocated by classic Kern validator.** @input:*face ::* A handle to the input face.**table ::* The pointer to the buffer that is allocated by* @FT_ClassicKern_Validate.** @note:* This function must be used to free the buffer allocated by* @FT_ClassicKern_Validate only.*/FT_EXPORT( void )FT_ClassicKern_Free( FT_Face face, FT_Bytestable );/* */FT_END_HEADER#endif /* __FTGXVAL_H__ *//* END */

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS /***************************************************************************/
$25