1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* fttypes.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* FreeType simple types definitions (specification only). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang/* Copyright 1996-2002, 2004, 2006-2009, 2012, 2013 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTTYPES_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTTYPES_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_CONFIG_CONFIG_H 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_SYSTEM_H 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_IMAGE_H 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <stddef.h> 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* basic_types */ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Title> */ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Basic Data Types */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Abstract> */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The basic data types defined by the library. */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 460a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* This section contains the basic data types defined by FreeType~2, */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* ranging from simple scalar types to bitmap descriptors. More */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* font-specific structures are defined in a different section. */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Order> */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Byte */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Bytes */ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Char */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Int */ 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UInt */ 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Int16 */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UInt16 */ 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Int32 */ 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UInt32 */ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Short */ 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UShort */ 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Long */ 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_ULong */ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Bool */ 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Offset */ 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_PtrDist */ 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_String */ 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Tag */ 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Error */ 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Fixed */ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Pointer */ 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Pos */ 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Vector */ 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_BBox */ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Matrix */ 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_FWord */ 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UFWord */ 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_F2Dot14 */ 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UnitVector */ 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_F26Dot6 */ 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Generic */ 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Generic_Finalizer */ 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Bitmap */ 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Pixel_Mode */ 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Palette_Mode */ 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Glyph_Format */ 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_IMAGE_TAG */ 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Bool */ 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef of unsigned char, used for simple booleans. As usual, */ 1020a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* values 1 and~0 represent true and false, respectively. */ 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned char FT_Bool; 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_FWord */ 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A signed 16-bit integer used to store a distance in original font */ 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* units. */ 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed short FT_FWord; /* distance in FUnits */ 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UFWord */ 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* An unsigned 16-bit integer used to store a distance in original */ 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* font units. */ 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned short FT_UFWord; /* unsigned distance */ 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Char */ 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A simple typedef for the _signed_ char type. */ 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed char FT_Char; 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Byte */ 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A simple typedef for the _unsigned_ char type. */ 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned char FT_Byte; 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Bytes */ 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for constant memory areas. */ 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef const FT_Byte* FT_Bytes; 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Tag */ 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 170aacb8e1368a883fcbc9fe64fd0e460cef9c9b20cNick Kralevich /* A typedef for 32-bit tags (as used in the SFNT format). */ 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_UInt32 FT_Tag; 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_String */ 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A simple typedef for the char type, usually used for strings. */ 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef char FT_String; 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Short */ 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for signed short. */ 193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed short FT_Short; 195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UShort */ 201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for unsigned short. */ 204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned short FT_UShort; 206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Int */ 212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 213049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 214049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for the int type. */ 215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed int FT_Int; 217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UInt */ 223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for the unsigned int type. */ 226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned int FT_UInt; 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Long */ 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for signed long. */ 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed long FT_Long; 239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 241049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 243049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_ULong */ 245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for unsigned long. */ 248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned long FT_ULong; 250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_F2Dot14 */ 256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 258a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* A signed 2.14 fixed-point type used for unit vectors. */ 259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 260049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed short FT_F2Dot14; 261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 265049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 266049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_F26Dot6 */ 267049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 269a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* A signed 26.6 fixed-point type used for vectorial pixel */ 270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* coordinates. */ 271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 272049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed long FT_F26Dot6; 273049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 274049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 277049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Fixed */ 279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 281a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* This type is used to store 16.16 fixed-point values, like scaling */ 282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* values or matrix coefficients. */ 283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 284049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed long FT_Fixed; 285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Error */ 291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 2930a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* The FreeType error code type. A value of~0 is always interpreted */ 294049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* as a successful operation. */ 295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef int FT_Error; 297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 300049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 301049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Pointer */ 303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A simple typedef for a typeless pointer. */ 306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void* FT_Pointer; 308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 309049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 310049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 311049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Offset */ 314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 3160a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */ 317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* _unsigned_ integer type used to express a file size or position, */ 318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* or a memory block size. */ 319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 320049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef size_t FT_Offset; 321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 325049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 326049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_PtrDist */ 327049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 328049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 3290a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */ 330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* largest _signed_ integer type used to express the distance */ 331049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* between two pointers. */ 332049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 333049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef ft_ptrdiff_t FT_PtrDist; 334049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 335049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 336049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UnitVector */ 340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A simple structure used to store a 2D vector unit vector. Uses */ 343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_F2Dot14 types. */ 344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* x :: Horizontal coordinate. */ 347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 348049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* y :: Vertical coordinate. */ 349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_UnitVector_ 351049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 352049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_F2Dot14 x; 353049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_F2Dot14 y; 354049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 355049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_UnitVector; 356049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 357049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 358049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 359049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 360049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 361049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Matrix */ 362049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 363049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 364049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A simple structure used to store a 2x2 matrix. Coefficients are */ 365a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* in 16.16 fixed-point format. The computation performed is: */ 366049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 367049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* { */ 368049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* x' = x*xx + y*xy */ 369049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* y' = x*yx + y*yy */ 370049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* } */ 371049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 372049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 373049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* xx :: Matrix coefficient. */ 374049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 375049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* xy :: Matrix coefficient. */ 376049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 377049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* yx :: Matrix coefficient. */ 378049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 379049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* yy :: Matrix coefficient. */ 380049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 381049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_Matrix_ 382049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 383049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed xx, xy; 384049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed yx, yy; 385049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 386049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_Matrix; 387049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 388049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 389049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 390049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 391049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 392049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Data */ 393049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 394049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 395049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Read-only binary data represented as a pointer and a length. */ 396049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 397049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 398049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* pointer :: The data. */ 399049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 400049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* length :: The length of the data in bytes. */ 401049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 402049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_Data_ 403049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 404049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project const FT_Byte* pointer; 405049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Int length; 406049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 407049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_Data; 408049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 409049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 410049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 411049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 412049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <FuncType> */ 413049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Generic_Finalizer */ 414049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 415049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 4160a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Describe a function used to destroy the `client' data of any */ 417049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FreeType object. See the description of the @FT_Generic type for */ 418049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* details of usage. */ 419049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 420049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Input> */ 421049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The address of the FreeType object which is under finalization. */ 422049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Its client data is accessed through its `generic' field. */ 423049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 424049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef void (*FT_Generic_Finalizer)(void* object); 425049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 426049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 427049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 428049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 429049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 430049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Generic */ 431049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 432049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 433049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Client applications often need to associate their own data to a */ 434049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* variety of FreeType core objects. For example, a text layout API */ 435049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* might want to associate a glyph cache to a given size object. */ 436049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 437e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang /* Some FreeType object contains a `generic' field, of type */ 438049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Generic, which usage is left to client applications and font */ 439049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* servers. */ 440049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 441049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* It can be used to store a pointer to client-specific data, as well */ 442049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* as the address of a `finalizer' function, which will be called by */ 443049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FreeType when the object is destroyed (for example, the previous */ 444049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* client example would put the address of the glyph cache destructor */ 445049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* in the `finalizer' field). */ 446049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 447049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 448049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* data :: A typeless pointer to any client-specified data. This */ 449049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* field is completely ignored by the FreeType library. */ 450049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 451049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* finalizer :: A pointer to a `generic finalizer' function, which */ 452049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* will be called when the object is destroyed. If this */ 453049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* field is set to NULL, no code will be called. */ 454049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 455049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_Generic_ 456049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 457049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project void* data; 458049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Generic_Finalizer finalizer; 459049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 460049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_Generic; 461049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 462049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 463049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 464049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 465049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Macro> */ 466049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_MAKE_TAG */ 467049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 468049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 469049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This macro converts four-letter tags which are used to label */ 470049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* TrueType tables into an unsigned long to be used within FreeType. */ 471049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 472049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Note> */ 4730a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* The produced values *must* be 32-bit integers. Don't redefine */ 4740a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* this macro. */ 475049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 476049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ 477295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner (FT_Tag) \ 478049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ( ( (FT_ULong)_x1 << 24 ) | \ 479049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ( (FT_ULong)_x2 << 16 ) | \ 480049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ( (FT_ULong)_x3 << 8 ) | \ 481049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (FT_ULong)_x4 ) 482049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 483049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 484049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 485049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 486049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 487049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* L I S T M A N A G E M E N T */ 488049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 489049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 490049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 491049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 492049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 493049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 494049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 495049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 496049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* list_processing */ 497049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 498049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 499049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 500049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 501049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 502049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 503049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 504049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_ListNode */ 505049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 506049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 507049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Many elements and objects in FreeType are listed through an */ 508049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* @FT_List record (see @FT_ListRec). As its name suggests, an */ 509049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_ListNode is a handle to a single list element. */ 510049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 511049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_ListNodeRec_* FT_ListNode; 512049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 513049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 514049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 515049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 516049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 517049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_List */ 518049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 519049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 520049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A handle to a list record (see @FT_ListRec). */ 521049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 522049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_ListRec_* FT_List; 523049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 524049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 525049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 526049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 527049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 528049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_ListNodeRec */ 529049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 530049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 531049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A structure used to hold a single list element. */ 532049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 533049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 534049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* prev :: The previous element in the list. NULL if first. */ 535049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 536049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* next :: The next element in the list. NULL if last. */ 537049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 538049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* data :: A typeless pointer to the listed object. */ 539049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 540049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_ListNodeRec_ 541049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 542049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ListNode prev; 543049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ListNode next; 544049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project void* data; 545049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 546049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_ListNodeRec; 547049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 548049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 549049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 550049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 551049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 552049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_ListRec */ 553049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 554049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 555049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A structure used to hold a simple doubly-linked list. These are */ 556049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* used in many parts of FreeType. */ 557049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 558049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 559049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* head :: The head (first element) of doubly-linked list. */ 560049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 561049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* tail :: The tail (last element) of doubly-linked list. */ 562049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 563049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_ListRec_ 564049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 565049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ListNode head; 566049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_ListNode tail; 567049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 568049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_ListRec; 569049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 570049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 571049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 572049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 573049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_IS_EMPTY( list ) ( (list).head == 0 ) 574a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_BOOL( x ) ( (FT_Bool)( x ) ) 575049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 576a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* concatenate C tokens */ 577a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_ERR_XCAT( x, y ) x ## y 578a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y ) 579a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 580a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* see `ftmoderr.h' for descriptions of the following macros */ 581a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 582a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) 583049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 584a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_ERROR_BASE( x ) ( (x) & 0xFF ) 585049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U ) 586049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 587a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_ERR_EQ( x, e ) \ 588a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( FT_ERROR_BASE( x ) == FT_ERROR_BASE( FT_ERR( e ) ) ) 589a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_ERR_NEQ( x, e ) \ 590a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( FT_ERROR_BASE( x ) != FT_ERROR_BASE( FT_ERR( e ) ) ) 591a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 592049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 593049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 594049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 595049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTTYPES_H__ */ 596049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 597049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 598049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 599