Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
f864ef21
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
1 年多 前同步成功
通知
0
Star
18
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Harfbuzz
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f864ef21
编写于
10月 30, 2018
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[mort] More massaging towards mort
上级
2d946734
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
26 deletion
+27
-26
src/hb-aat-layout-morx-table.hh
src/hb-aat-layout-morx-table.hh
+27
-26
未找到文件。
src/hb-aat-layout-morx-table.hh
浏览文件 @
f864ef21
...
...
@@ -782,28 +782,29 @@ struct Feature
template
<
typename
Types
>
struct
ChainSubtable
{
typedef
typename
Types
::
HBUINT
HBUINT
;
template
<
typename
T
>
friend
struct
Chain
;
inline
unsigned
int
get_size
(
void
)
const
{
return
length
;
}
inline
unsigned
int
get_type
(
void
)
const
{
return
coverage
&
SubtableType
;
}
inline
unsigned
int
get_type
(
void
)
const
{
return
coverage
&
0xFF
;
}
inline
unsigned
int
get_coverage
(
void
)
const
{
return
coverage
>>
(
sizeof
(
HBUINT
)
*
8
-
8
);
}
enum
Coverage
{
Vertical
=
0x80000000
,
/* If set, this subtable will only be applied
* to vertical text. If clear, this subtable
* will only be applied to horizontal text. */
Backwards
=
0x40000000
,
/* If set, this subtable will process glyphs
* in descending order. If clear, it will
* process the glyphs in ascending order. */
AllDirections
=
0x20000000
,
/* If set, this subtable will be applied to
* both horizontal and vertical text (i.e.
* the state of bit 0x80000000 is ignored). */
Logical
=
0x10000000
,
/* If set, this subtable will process glyphs
* in logical order (or reverse logical order,
* depending on the value of bit 0x80000000). */
Reserved
=
0x0FFFFF00
,
/* Reserved, set to zero. */
SubtableType
=
0x000000FF
,
/* Subtable type; see following table. */
Vertical
=
0x80
,
/* If set, this subtable will only be applied
* to vertical text. If clear, this subtable
* will only be applied to horizontal text. */
Backwards
=
0x40
,
/* If set, this subtable will process glyphs
* in descending order. If clear, it will
* process the glyphs in ascending order. */
AllDirections
=
0x20
,
/* If set, this subtable will be applied to
* both horizontal and vertical text (i.e.
* the state of bit 0x80000000 is ignored). */
Logical
=
0x10
,
/* If set, this subtable will process glyphs
* in logical order (or reverse logical order,
* depending on the value of bit 0x80000000). */
};
enum
Type
{
...
...
@@ -841,8 +842,8 @@ struct ChainSubtable
}
protected:
HBUINT
32
length
;
/* Total subtable length, including this header. */
HBUINT
32
coverage
;
/* Coverage flags and subtable type. */
HBUINT
length
;
/* Total subtable length, including this header. */
HBUINT
coverage
;
/* Coverage flags and subtable type. */
HBUINT32
subFeatureFlags
;
/* The 32-bit mask identifying which subtable this is. */
union
{
RearrangementSubtable
<
Types
>
rearrangement
;
...
...
@@ -852,7 +853,7 @@ struct ChainSubtable
InsertionSubtable
<
Types
>
insertion
;
}
u
;
public:
DEFINE_SIZE_MIN
(
2
*
sizeof
(
HBUINT
32
)
+
4
);
DEFINE_SIZE_MIN
(
2
*
sizeof
(
HBUINT
)
+
4
);
};
template
<
typename
Types
>
...
...
@@ -895,9 +896,9 @@ struct Chain
if
(
!
(
subtable
->
subFeatureFlags
&
flags
))
goto
skip
;
if
(
!
(
subtable
->
coverage
&
ChainSubtable
<
Types
>::
AllDirections
)
&&
if
(
!
(
subtable
->
get_coverage
()
&
ChainSubtable
<
Types
>::
AllDirections
)
&&
HB_DIRECTION_IS_VERTICAL
(
c
->
buffer
->
props
.
direction
)
!=
bool
(
subtable
->
coverage
&
ChainSubtable
<
Types
>::
Vertical
))
bool
(
subtable
->
get_coverage
()
&
ChainSubtable
<
Types
>::
Vertical
))
goto
skip
;
/* Buffer contents is always in logical direction. Determine if
...
...
@@ -927,9 +928,9 @@ struct Chain
(the order opposite that of the characters, which
may be right-to-left or left-to-right).
*/
reverse
=
subtable
->
coverage
&
ChainSubtable
<
Types
>::
Logical
?
bool
(
subtable
->
coverage
&
ChainSubtable
<
Types
>::
Backwards
)
:
bool
(
subtable
->
coverage
&
ChainSubtable
<
Types
>::
Backwards
)
!=
reverse
=
subtable
->
get_coverage
()
&
ChainSubtable
<
Types
>::
Logical
?
bool
(
subtable
->
get_coverage
()
&
ChainSubtable
<
Types
>::
Backwards
)
:
bool
(
subtable
->
get_coverage
()
&
ChainSubtable
<
Types
>::
Backwards
)
!=
HB_DIRECTION_IS_BACKWARD
(
c
->
buffer
->
props
.
direction
);
if
(
!
c
->
buffer
->
message
(
c
->
font
,
"start chain subtable %d"
,
c
->
lookup_index
))
...
...
@@ -981,8 +982,8 @@ struct Chain
}
protected:
HBUINT
defaultFlags
;
/* The default specification for subtables. */
HBUINT
length
;
/* Total byte count, including this header. */
HBUINT
32
defaultFlags
;
/* The default specification for subtables. */
HBUINT
32
length
;
/* Total byte count, including this header. */
HBUINT
featureCount
;
/* Number of feature subtable entries. */
HBUINT
subtableCount
;
/* The number of subtables in the chain. */
...
...
@@ -991,7 +992,7 @@ struct Chain
/*subtableGlyphCoverageArray*/
/* Only if version >= 3. We don't use. */
public:
DEFINE_SIZE_MIN
(
2
*
sizeof
(
HBUINT
)
+
4
);
DEFINE_SIZE_MIN
(
8
+
2
*
sizeof
(
HBUINT
)
);
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录