Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h
38918 views
/*1* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.2*3* This code is free software; you can redistribute it and/or modify it4* under the terms of the GNU General Public License version 2 only, as5* published by the Free Software Foundation. Oracle designates this6* particular file as subject to the "Classpath" exception as provided7* by Oracle in the LICENSE file that accompanied this code.8*9* This code is distributed in the hope that it will be useful, but WITHOUT10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License12* version 2 for more details (a copy is included in the LICENSE file that13* accompanied this code).14*15* You should have received a copy of the GNU General Public License version16* 2 along with this work; if not, write to the Free Software Foundation,17* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.18*19* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA20* or visit www.oracle.com if you need additional information or have any21* questions.22*23*/2425/*26*27* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved28*29*/3031#ifndef __CLASSDEFINITIONTABLES_H32#define __CLASSDEFINITIONTABLES_H3334/**35* \file36* \internal37*/3839#include "LETypes.h"40#include "OpenTypeTables.h"4142U_NAMESPACE_BEGIN4344struct ClassDefinitionTable45{46le_uint16 classFormat;4748le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;49le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;5051#if LE_ENABLE_RAW52le_int32 getGlyphClass(LEGlyphID glyphID) const {53LETableReference base((const le_uint8*)this);54LEErrorCode ignored = LE_NO_ERROR;55return getGlyphClass(base,glyphID,ignored);56}5758le_bool hasGlyphClass(le_int32 glyphClass) const {59LETableReference base((const le_uint8*)this);60LEErrorCode ignored = LE_NO_ERROR;61return hasGlyphClass(base,glyphClass,ignored);62}63#endif64};6566struct ClassDefFormat1Table : ClassDefinitionTable67{68TTGlyphID startGlyph;69le_uint16 glyphCount;70le_uint16 classValueArray[ANY_NUMBER];7172le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;73le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;74};75LE_VAR_ARRAY(ClassDefFormat1Table, classValueArray)767778struct ClassRangeRecord79{80TTGlyphID start;81TTGlyphID end;82le_uint16 classValue;83};8485struct ClassDefFormat2Table : ClassDefinitionTable86{87le_uint16 classRangeCount;88GlyphRangeRecord classRangeRecordArray[ANY_NUMBER];8990le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;91le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;92};93LE_VAR_ARRAY(ClassDefFormat2Table, classRangeRecordArray)9495U_NAMESPACE_END96#endif979899