1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftsnames.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin/* Simple interface to access SFNT `name' tables (which are used */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* to hold font names, copyright info, notices, etc.) (specification). */ 7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This is _not_ used to retrieve glyph names! */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin/* Copyright 1996-2017 by */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#ifndef FTSNAMES_H_ 23055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#define FTSNAMES_H_ 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!" 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files" 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first." 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* sfnt_names */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Title> */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* SFNT Names */ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Abstract> */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Access the names embedded in TrueType and OpenType files. */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 510a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* The TrueType and OpenType specifications allow the inclusion of */ 52a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* a special names table (`name') in font files. This table contains */ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* textual (and internationalized) information regarding the font, */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* like family name, copyright, version, etc. */ 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The definitions below are used to access them if available. */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Note that this has nothing to do with glyph names! */ 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_SfntName */ 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A structure used to model an SFNT `name' table entry. */ 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* platform_id :: The platform ID for `string'. */ 73a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* See @TT_PLATFORM_XXX for possible values. */ 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* encoding_id :: The encoding ID for `string'. */ 76a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */ 77a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX */ 78a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* for possible values. */ 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* language_id :: The language ID for `string'. */ 81a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* See @TT_MAC_LANGID_XXX and @TT_MS_LANGID_XXX for */ 82a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* possible values. */ 83a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 84a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* Registered OpenType values for `language_id' are */ 85a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* always smaller than 0x8000; values equal or larger */ 86a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* than 0x8000 usually indicate a language tag string */ 87a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* (introduced in OpenType version 1.6). Use function */ 88a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* @FT_Get_Sfnt_LangTag with `language_id' as its */ 89a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* argument to retrieve the associated language tag. */ 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* name_id :: An identifier for `string'. */ 92a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* See @TT_NAME_ID_XXX for possible values. */ 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* string :: The `name' string. Note that its format differs */ 95a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* depending on the (platform,encoding) pair, being */ 96a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* either a string of bytes (without a terminating */ 97a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* NULL byte) or containing UTF-16BE entities. */ 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* string_len :: The length of `string' in bytes. */ 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Note> */ 102a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* Please refer to the TrueType or OpenType specification for more */ 103a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* details. */ 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_SfntName_ 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UShort platform_id; 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UShort encoding_id; 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UShort language_id; 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UShort name_id; 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Byte* string; /* this string is *not* null-terminated! */ 113a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_UInt string_len; /* in bytes */ 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_SfntName; 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Function> */ 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Get_Sfnt_Name_Count */ 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 1240a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Retrieve the number of name strings in the SFNT `name' table. */ 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Input> */ 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* face :: A handle to the source face. */ 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Return> */ 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The number of strings in the `name' table. */ 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_UInt ) 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Get_Sfnt_Name_Count( FT_Face face ); 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Function> */ 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Get_Sfnt_Name */ 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 1420a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Retrieve a string of the SFNT `name' table for a given index. */ 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Input> */ 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* face :: A handle to the source face. */ 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* idx :: The index of the `name' string. */ 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Output> */ 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* aname :: The indexed @FT_SfntName structure. */ 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Return> */ 1530a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* FreeType error code. 0~means success. */ 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Note> */ 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The `string' array returned in the `aname' structure is not */ 157a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* null-terminated. Note that you don't have to deallocate `string' */ 158a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* by yourself; FreeType takes care of it if you call @FT_Done_Face. */ 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* `name' table entries, then do a loop until you get the right */ 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* platform, encoding, and name ID. */ 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 164a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* `name' table format~1 entries can use language tags also, see */ 165a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* @FT_Get_Sfnt_LangTag. */ 166a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Get_Sfnt_Name( FT_Face face, 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt idx, 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_SfntName *aname ); 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 173a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /*************************************************************************/ 174a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 175a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Struct> */ 176a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* FT_SfntLangTag */ 177a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 178a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Description> */ 179a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* A structure to model a language tag entry from an SFNT `name' */ 180a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* table. */ 181a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 182a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Fields> */ 183a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* string :: The language tag string, encoded in UTF-16BE */ 184a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* (without trailing NULL bytes). */ 185a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 186a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* string_len :: The length of `string' in *bytes*. */ 187a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 188a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Note> */ 189a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* Please refer to the TrueType or OpenType specification for more */ 190a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* details. */ 191a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 192a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin typedef struct FT_SfntLangTag_ 193a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin { 194a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_Byte* string; /* this string is *not* null-terminated! */ 195a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_UInt string_len; /* in bytes */ 196a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 197a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin } FT_SfntLangTag; 198a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 199a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 200a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /*************************************************************************/ 201a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 202a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Function> */ 203a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* FT_Get_Sfnt_LangTag */ 204a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 205a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Description> */ 206a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* Retrieve the language tag associated with a language ID of an SFNT */ 207a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* `name' table entry. */ 208a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 209a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Input> */ 210a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* face :: A handle to the source face. */ 211a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 212a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* langID :: The language ID, as returned by @FT_Get_Sfnt_Name. */ 213a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* This is always a value larger than 0x8000. */ 214a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 215a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Output> */ 216a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* alangTag :: The language tag associated with the `name' table */ 217a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* entry's language ID. */ 218a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 219a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Return> */ 220a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* FreeType error code. 0~means success. */ 221a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 222a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* <Note> */ 223a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* The `string' array returned in the `alangTag' structure is not */ 224a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* null-terminated. Note that you don't have to deallocate `string' */ 225a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* by yourself; FreeType takes care of it if you call @FT_Done_Face. */ 226a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 227a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* Only `name' table format~1 supports language tags. For format~0 */ 228a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* tables, this function always returns FT_Err_Invalid_Table. For */ 229a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* invalid format~1 language ID values, FT_Err_Invalid_Argument is */ 230a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* returned. */ 231a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* */ 232a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_EXPORT( FT_Error ) 233a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_Get_Sfnt_LangTag( FT_Face face, 234a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_UInt langID, 235a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_SfntLangTag *alangTag ); 236a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 237a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 238295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner /*************************************************************************** 239295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * 240295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * @constant: 241a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY 242295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * 243295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * @description: 244a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic 245a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * family names in the `name' table (introduced in OpenType version 246a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * 1.4). Use this for backwards compatibility with legacy systems that 247a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * have a four-faces-per-family restriction. 248295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * 249295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner */ 250a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \ 251a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) 252a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 253a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 254a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* this constant is deprecated */ 255a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \ 256a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY 257295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 258295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 259295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner /*************************************************************************** 260295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * 261295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * @constant: 262a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY 263295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * 264295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * @description: 265a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic 266a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * subfamily names in the `name' table (introduced in OpenType version 267a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * 1.4). Use this for backwards compatibility with legacy systems that 268a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin * have a four-faces-per-family restriction. 269295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * 270295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner */ 271a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \ 272a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_MAKE_TAG( 'i', 'g', 'p', 's' ) 273a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 274a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin 275a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin /* this constant is deprecated */ 276a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \ 277a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY 278295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 284055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#endif /* FTSNAMES_H_ */ 285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 288