godot/thirdparty/harfbuzz/src/hb-ot-layout-common.hh

/*
 * Copyright © 2007,2008,2009  Red Hat, Inc.
 * Copyright © 2010,2012  Google, 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.
 *
 * Red Hat Author(s): Behdad Esfahbod
 * Google Author(s): Behdad Esfahbod
 */

#ifndef HB_OT_LAYOUT_COMMON_HH
#define HB_OT_LAYOUT_COMMON_HH

#include "hb.hh"
#include "hb-ot-layout.hh"
#include "hb-open-type.hh"
#include "hb-set.hh"
#include "hb-bimap.hh"

#include "OT/Layout/Common/Coverage.hh"
#include "OT/Layout/types.hh"

// TODO(garretrieger): cleanup these after migration.
Coverage;
RangeRecord;
SmallTypes;
MediumTypes;


OT;

struct Script
{};

struct RecordListOfScript : RecordListOf<Script>
{};

ScriptList;



struct LookupFlag : HBUINT16
{};

} /* namespace OT */
/* This has to be outside the namespace. */
HB_MARK_AS_FLAG_T (OT::LookupFlag::Flags);
namespace OT {

struct Lookup
{};

LookupList;

template <typename TLookup, typename OffsetType>
struct LookupOffsetList : List16OfOffsetTo<TLookup, OffsetType>
{};


/*
 * Coverage Table
 */


static bool ClassDef_remap_and_serialize (hb_serialize_context_t *c,
					  const hb_set_t &klasses,
                                          bool use_class_zero,
                                          hb_sorted_vector_t<hb_codepoint_pair_t> &glyph_and_klass, /* IN/OUT */
					  hb_map_t *klass_map /*IN/OUT*/)
{}

/*
 * Class Definition Table
 */

template <typename Types>
struct ClassDefFormat1_3
{};

template <typename Types>
struct ClassDefFormat2_4
{};

struct ClassDef
{};

template<typename Iterator>
static inline bool ClassDef_serialize (hb_serialize_context_t *c,
				       Iterator it)
{}


/*
 * Item Variation Store
 */

/* ported from fonttools (class _Encoding) */
struct delta_row_encoding_t
{};

struct VarRegionAxis
{};
struct SparseVarRegionAxis
{};

#define REGION_CACHE_ITEM_CACHE_INVALID

struct VarRegionList
{};

struct SparseVariationRegion : Array16Of<SparseVarRegionAxis>
{};

struct SparseVarRegionList
{};


struct VarData
{};

struct MultiVarData
{};

struct ItemVariationStore
{};

struct MultiItemVariationStore
{};

#undef REGION_CACHE_ITEM_CACHE_INVALID

template <typename MapCountT>
struct DeltaSetIndexMapFormat01
{};

struct DeltaSetIndexMap
{};


struct ItemVarStoreInstancer
{};

struct MultiItemVarStoreInstancer
{};


/*
 * Feature Variations
 */
enum Cond_with_Var_flag_t
{};

struct Condition;

template <typename Instancer>
static bool
_hb_recurse_condition_evaluate (const struct Condition &condition,
				const int *coords,
				unsigned int coord_len,
				Instancer *instancer);

struct ConditionAxisRange
{};

struct ConditionValue
{};

struct ConditionAnd
{};

struct ConditionOr
{};

struct ConditionNegate
{};

struct Condition
{};

template <typename Instancer>
bool
_hb_recurse_condition_evaluate (const struct Condition &condition,
				const int *coords,
				unsigned int coord_len,
				Instancer *instancer)
{}

struct ConditionList
{};

struct ConditionSet
{};

struct FeatureTableSubstitutionRecord
{};

struct FeatureTableSubstitution
{};

struct FeatureVariationRecord
{};

struct FeatureVariations
{};


/*
 * Device Tables
 */

struct HintingDevice
{};

struct VariationDevice
{};

struct DeviceHeader
{};

struct Device
{};


} /* namespace OT */


#endif /* HB_OT_LAYOUT_COMMON_HH */