1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/
2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  ftcid.h                                                                */
4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*    FreeType API for accessing CID font information (specification).     */
6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
7ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki/*  Copyright 2007-2015 by                                                 */
8ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki/*  Dereg Clegg and Michael Toftdal.                                       */
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 __FTCID_H__
20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTCID_H__
21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h>
23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H
24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H
26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!"
27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files"
28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first."
29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif
30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER
33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Section>                                                             */
38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    cid_fonts                                                          */
39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Title>                                                               */
41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    CID Fonts                                                          */
42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Abstract>                                                            */
44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    CID-keyed font specific API.                                       */
45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    This section contains the declaration of CID-keyed font specific   */
48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    functions.                                                         */
49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /**********************************************************************
54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @function:
56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    FT_Get_CID_Registry_Ordering_Supplement
57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @description:
59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    Retrieve the Registry/Ordering/Supplement triple (also known as the
60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    "R/O/S") from a CID-keyed font.
61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @input:
63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    face ::
64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *       A handle to the input face.
65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @output:
67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    registry ::
6877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *       The registry, as a C~string, owned by the face.
69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    ordering ::
7177f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *       The ordering, as a C~string, owned by the face.
72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    supplement ::
74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *       The supplement.
75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @return:
7777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    FreeType error code.  0~means success.
78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @note:
80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    This function only works with CID faces, returning an error
81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    otherwise.
82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *
83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   * @since:
84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   *    2.3.6
85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project   */
86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Get_CID_Registry_Ordering_Supplement( FT_Face       face,
88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                           const char*  *registry,
89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                           const char*  *ordering,
90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                                           FT_Int       *supplement);
91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
9277f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner
9377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner  /**********************************************************************
9477f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
9577f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @function:
9677f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    FT_Get_CID_Is_Internally_CID_Keyed
9777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
9877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @description:
9977f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    Retrieve the type of the input face, CID keyed or not.  In
10077f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    constrast to the @FT_IS_CID_KEYED macro this function returns
10177f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    successfully also for CID-keyed fonts in an SNFT wrapper.
10277f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
10377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @input:
10477f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    face ::
10577f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *       A handle to the input face.
10677f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
10777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @output:
10877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    is_cid ::
10977f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *       The type of the face as an @FT_Bool.
11077f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
11177f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @return:
11277f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    FreeType error code.  0~means success.
11377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
11477f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @note:
11577f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    This function only works with CID faces and OpenType fonts,
11677f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    returning an error otherwise.
11777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
11877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @since:
11977f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    2.3.9
12077f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   */
12177f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner  FT_EXPORT( FT_Error )
12277f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner  FT_Get_CID_Is_Internally_CID_Keyed( FT_Face   face,
12377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner                                      FT_Bool  *is_cid );
12477f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner
12577f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner
12677f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner  /**********************************************************************
12777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
12877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @function:
12977f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    FT_Get_CID_From_Glyph_Index
13077f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
13177f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @description:
13277f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    Retrieve the CID of the input glyph index.
13377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
13477f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @input:
13577f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    face ::
13677f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *       A handle to the input face.
13777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
13877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    glyph_index ::
13977f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *       The input glyph index.
14077f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
14177f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @output:
14277f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    cid ::
14377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *       The CID as an @FT_UInt.
14477f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
14577f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @return:
14677f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    FreeType error code.  0~means success.
14777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
14877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @note:
14977f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    This function only works with CID faces and OpenType fonts,
15077f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    returning an error otherwise.
15177f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *
15277f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   * @since:
15377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   *    2.3.9
15477f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner   */
15577f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner  FT_EXPORT( FT_Error )
15677f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner  FT_Get_CID_From_Glyph_Index( FT_Face   face,
15777f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner                               FT_UInt   glyph_index,
15877f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner                               FT_UInt  *cid );
15977f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner
160ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki  /* */
161ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki
162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER
164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTCID_H__ */
166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */
169