Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h
38918 views
1
/*
2
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3
*
4
* This code is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 2 only, as
6
* published by the Free Software Foundation. Oracle designates this
7
* particular file as subject to the "Classpath" exception as provided
8
* by Oracle in the LICENSE file that accompanied this code.
9
*
10
* This code is distributed in the hope that it will be useful, but WITHOUT
11
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13
* version 2 for more details (a copy is included in the LICENSE file that
14
* accompanied this code).
15
*
16
* You should have received a copy of the GNU General Public License version
17
* 2 along with this work; if not, write to the Free Software Foundation,
18
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19
*
20
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21
* or visit www.oracle.com if you need additional information or have any
22
* questions.
23
*
24
*/
25
26
/*
27
*
28
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
29
*
30
*/
31
32
#ifndef __CLASSDEFINITIONTABLES_H
33
#define __CLASSDEFINITIONTABLES_H
34
35
/**
36
* \file
37
* \internal
38
*/
39
40
#include "LETypes.h"
41
#include "OpenTypeTables.h"
42
43
U_NAMESPACE_BEGIN
44
45
struct ClassDefinitionTable
46
{
47
le_uint16 classFormat;
48
49
le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;
50
le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;
51
52
#if LE_ENABLE_RAW
53
le_int32 getGlyphClass(LEGlyphID glyphID) const {
54
LETableReference base((const le_uint8*)this);
55
LEErrorCode ignored = LE_NO_ERROR;
56
return getGlyphClass(base,glyphID,ignored);
57
}
58
59
le_bool hasGlyphClass(le_int32 glyphClass) const {
60
LETableReference base((const le_uint8*)this);
61
LEErrorCode ignored = LE_NO_ERROR;
62
return hasGlyphClass(base,glyphClass,ignored);
63
}
64
#endif
65
};
66
67
struct ClassDefFormat1Table : ClassDefinitionTable
68
{
69
TTGlyphID startGlyph;
70
le_uint16 glyphCount;
71
le_uint16 classValueArray[ANY_NUMBER];
72
73
le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;
74
le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;
75
};
76
LE_VAR_ARRAY(ClassDefFormat1Table, classValueArray)
77
78
79
struct ClassRangeRecord
80
{
81
TTGlyphID start;
82
TTGlyphID end;
83
le_uint16 classValue;
84
};
85
86
struct ClassDefFormat2Table : ClassDefinitionTable
87
{
88
le_uint16 classRangeCount;
89
GlyphRangeRecord classRangeRecordArray[ANY_NUMBER];
90
91
le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;
92
le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;
93
};
94
LE_VAR_ARRAY(ClassDefFormat2Table, classRangeRecordArray)
95
96
U_NAMESPACE_END
97
#endif
98
99