Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.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 __GLYPHDEFINITIONTABLES_H32#define __GLYPHDEFINITIONTABLES_H3334/**35* \file36* \internal37*/3839#include "LETypes.h"40#include "OpenTypeTables.h"41#include "ClassDefinitionTables.h"4243U_NAMESPACE_BEGIN4445typedef ClassDefinitionTable GlyphClassDefinitionTable;4647enum GlyphClassDefinitions48{49gcdNoGlyphClass = 0,50gcdSimpleGlyph = 1,51gcdLigatureGlyph = 2,52gcdMarkGlyph = 3,53gcdComponentGlyph = 454};5556struct AttachmentListTable57{58Offset coverageTableOffset;59le_uint16 glyphCount;60Offset attachPointTableOffsetArray[ANY_NUMBER];61};62LE_VAR_ARRAY(AttachmentListTable, attachPointTableOffsetArray)6364struct AttachPointTable65{66le_uint16 pointCount;67le_uint16 pointIndexArray[ANY_NUMBER];68};69LE_VAR_ARRAY(AttachPointTable, pointIndexArray)7071struct LigatureCaretListTable72{73Offset coverageTableOffset;74le_uint16 ligGlyphCount;75Offset ligGlyphTableOffsetArray[ANY_NUMBER];76};77LE_VAR_ARRAY(LigatureCaretListTable, ligGlyphTableOffsetArray)7879struct LigatureGlyphTable80{81le_uint16 caretCount;82Offset caretValueTableOffsetArray[ANY_NUMBER];83};84LE_VAR_ARRAY(LigatureGlyphTable, caretValueTableOffsetArray)8586struct CaretValueTable87{88le_uint16 caretValueFormat;89};9091struct CaretValueFormat1Table : CaretValueTable92{93le_int16 coordinate;94};9596struct CaretValueFormat2Table : CaretValueTable97{98le_uint16 caretValuePoint;99};100101struct CaretValueFormat3Table : CaretValueTable102{103le_int16 coordinate;104Offset deviceTableOffset;105};106107typedef ClassDefinitionTable MarkAttachClassDefinitionTable;108109struct GlyphDefinitionTableHeader110{111fixed32 version;112Offset glyphClassDefOffset;113Offset attachListOffset;114Offset ligCaretListOffset;115Offset MarkAttachClassDefOffset;116117const LEReferenceTo<GlyphClassDefinitionTable>118getGlyphClassDefinitionTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,119LEErrorCode &success) const;120const LEReferenceTo<AttachmentListTable>121getAttachmentListTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,122LEErrorCode &success)const ;123const LEReferenceTo<LigatureCaretListTable>124getLigatureCaretListTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,125LEErrorCode &success) const;126const LEReferenceTo<MarkAttachClassDefinitionTable>127getMarkAttachClassDefinitionTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,128LEErrorCode &success) const;129};130131U_NAMESPACE_END132#endif133134135