chromium/third_party/harfbuzz-ng/src/src/hb-ot-cff1-table.hh

/*
 * Copyright © 2018 Adobe Inc.
 *
 *  This is part of HarfBuzz, a text shaping library.
 *
 * Permission is hereby granted, without written agreement and without
 * license or royalty fees, to use, copy, modify, and distribute this
 * software and its documentation for any purpose, provided that the
 * above copyright notice and the following two paragraphs appear in
 * all copies of this software.
 *
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 * DAMAGE.
 *
 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 *
 * Adobe Author(s): Michiharu Ariza
 */

#ifndef HB_OT_CFF1_TABLE_HH
#define HB_OT_CFF1_TABLE_HH

#include "hb-ot-cff-common.hh"
#include "hb-subset-cff-common.hh"
#include "hb-draw.hh"
#include "hb-paint.hh"

#define HB_STRING_ARRAY_NAME
#define HB_STRING_ARRAY_LIST
#include "hb-string-array.hh"
#undef HB_STRING_ARRAY_LIST
#undef HB_STRING_ARRAY_NAME

namespace CFF {

/*
 * CFF -- Compact Font Format (CFF)
 * https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5176.CFF.pdf
 */
#define HB_OT_TAG_CFF1

#define CFF_UNDEF_SID

enum EncodingID {};
enum CharsetID {};

CFF1Index;

CFF1Index;
CFF1CharStrings;
CFF1Subrs;

struct CFF1FDSelect : FDSelect {};

/* Encoding */
struct Encoding0 {};

struct Encoding1_Range {};

struct Encoding1 {};

struct SuppEncoding {};

struct CFF1SuppEncData {};

struct Encoding
{};

/* Charset */
struct Charset0
{};

template <typename TYPE>
struct Charset_Range {};

template <typename TYPE>
struct Charset1_2 {};

Charset1;
Charset2;
Charset1_Range;
Charset2_Range;

struct Charset
{};

struct CFF1StringIndex : CFF1Index
{};

struct cff1_top_dict_interp_env_t : num_interp_env_t
{};

struct name_dict_values_t
{};

struct cff1_top_dict_val_t : op_str_t
{};

struct cff1_top_dict_values_t : top_dict_values_t<cff1_top_dict_val_t>
{};

struct cff1_top_dict_opset_t : top_dict_opset_t<cff1_top_dict_val_t>
{};

struct cff1_font_dict_values_t : dict_values_t<op_str_t>
{};

struct cff1_font_dict_opset_t : dict_opset_t
{};

template <typename VAL>
struct cff1_private_dict_values_base_t : dict_values_t<VAL>
{};

cff1_private_dict_values_subset_t;
cff1_private_dict_values_t;

struct cff1_private_dict_opset_t : dict_opset_t
{};

struct cff1_private_dict_opset_subset_t : dict_opset_t
{};

cff1_top_dict_interpreter_t;
cff1_font_dict_interpreter_t;

CFF1NameIndex;
CFF1TopDictIndex;

struct cff1_font_dict_values_mod_t
{};

struct CFF1FDArray : FDArray<HBUINT16>
{};

} /* namespace CFF */

namespace OT {

usingnamespaceCFF;

struct cff1
{};

struct cff1_accelerator_t : cff1::accelerator_t {};

struct cff1_subset_accelerator_t : cff1::accelerator_subset_t {};

} /* namespace OT */

#endif /* HB_OT_CFF1_TABLE_HH */