Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
5130c35e
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5130c35e
编写于
5月 26, 2009
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[HB] Simplify MarkAttachmentType handling
上级
e4b92b85
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
13 addition
and
17 deletion
+13
-17
src/hb-ot-layout-gpos-private.h
src/hb-ot-layout-gpos-private.h
+3
-3
src/hb-ot-layout-gsub-private.h
src/hb-ot-layout-gsub-private.h
+2
-4
src/hb-ot-layout.cc
src/hb-ot-layout.cc
+8
-10
未找到文件。
src/hb-ot-layout-gpos-private.h
浏览文件 @
5130c35e
...
...
@@ -784,7 +784,7 @@ struct MarkBasePosFormat1
while
(
i
<=
count
)
{
property
=
_hb_ot_layout_get_glyph_property
(
layout
,
IN_GLYPH
(
j
));
if
(
!
(
property
==
HB_OT_LAYOUT_GLYPH_CLASS_MARK
||
property
&
LookupFlag
::
MarkAttachmentType
))
if
(
!
(
property
&
HB_OT_LAYOUT_GLYPH_CLASS_MARK
))
break
;
i
++
,
j
--
;
}
...
...
@@ -909,7 +909,7 @@ struct MarkLigPosFormat1
while
(
i
<=
count
)
{
property
=
_hb_ot_layout_get_glyph_property
(
layout
,
IN_GLYPH
(
j
));
if
(
!
(
property
==
HB_OT_LAYOUT_GLYPH_CLASS_MARK
||
property
&
LookupFlag
::
MarkAttachmentType
))
if
(
!
(
property
&
HB_OT_LAYOUT_GLYPH_CLASS_MARK
))
break
;
i
++
,
j
--
;
}
...
...
@@ -1047,7 +1047,7 @@ struct MarkMarkPosFormat1
while
(
i
<=
count
)
{
property
=
_hb_ot_layout_get_glyph_property
(
layout
,
IN_GLYPH
(
j
));
if
(
!
(
property
==
HB_OT_LAYOUT_GLYPH_CLASS_MARK
||
property
&
LookupFlag
::
MarkAttachmentType
))
if
(
!
(
property
&
HB_OT_LAYOUT_GLYPH_CLASS_MARK
))
return
false
;
if
(
!
(
lookup_flag
&
LookupFlag
::
MarkAttachmentType
)
||
(
lookup_flag
&
LookupFlag
::
MarkAttachmentType
)
==
property
)
...
...
src/hb-ot-layout-gsub-private.h
浏览文件 @
5130c35e
...
...
@@ -310,8 +310,7 @@ struct Ligature
j
++
;
}
if
(
!
(
property
==
HB_OT_LAYOUT_GLYPH_CLASS_MARK
||
property
&
LookupFlag
::
MarkAttachmentType
))
if
(
!
(
property
&
HB_OT_LAYOUT_GLYPH_CLASS_MARK
))
is_mark
=
FALSE
;
if
(
HB_LIKELY
(
IN_GLYPH
(
j
)
!=
component
[
i
]))
...
...
@@ -402,8 +401,7 @@ struct LigatureSubstFormat1
{
hb_codepoint_t
glyph_id
=
IN_CURGLYPH
();
bool
first_is_mark
=
(
property
==
HB_OT_LAYOUT_GLYPH_CLASS_MARK
||
property
&
LookupFlag
::
MarkAttachmentType
);
bool
first_is_mark
=
!!
(
property
&
HB_OT_LAYOUT_GLYPH_CLASS_MARK
);
unsigned
int
index
=
(
this
+
coverage
)
(
glyph_id
);
if
(
HB_LIKELY
(
index
==
NOT_COVERED
))
...
...
src/hb-ot-layout.cc
浏览文件 @
5130c35e
...
...
@@ -138,12 +138,6 @@ _hb_ot_layout_get_glyph_property (hb_ot_layout_t *layout,
{
hb_ot_layout_class_t
klass
;
/* TODO old harfbuzz doesn't always parse mark attachments as it says it was
* introduced without a version bump, so it may not be safe */
klass
=
layout
->
gdef
->
get_mark_attachment_type
(
glyph
);
if
(
klass
)
return
klass
<<
8
;
klass
=
layout
->
gdef
->
get_glyph_class
(
glyph
);
if
(
!
klass
&&
glyph
<
layout
->
new_gdef
.
len
)
...
...
@@ -154,8 +148,12 @@ _hb_ot_layout_get_glyph_property (hb_ot_layout_t *layout,
case
GDEF
::
UnclassifiedGlyph
:
return
HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED
;
case
GDEF
::
BaseGlyph
:
return
HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH
;
case
GDEF
::
LigatureGlyph
:
return
HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE
;
case
GDEF
::
MarkGlyph
:
return
HB_OT_LAYOUT_GLYPH_CLASS_MARK
;
case
GDEF
::
ComponentGlyph
:
return
HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT
;
case
GDEF
::
MarkGlyph
:
/* TODO old harfbuzz doesn't always parse mark attachments as it says it was
* introduced without a version bump, so it may not be safe */
klass
=
layout
->
gdef
->
get_mark_attachment_type
(
glyph
);
return
HB_OT_LAYOUT_GLYPH_CLASS_MARK
+
klass
<<
8
;
}
}
...
...
@@ -178,9 +176,9 @@ _hb_ot_layout_check_glyph_property (hb_ot_layout_t *layout,
*
property
=
ginfo
->
gproperty
;
/* If the glyph was found in the MarkAttachmentClass table,
* then that class value is
the high byte of the result,
*
otherwise the low byte contains the basic type of the glyph
*
as defined by
the GlyphClassDef table.
* then that class value is
stored in the high byte of the result.
*
The low byte contains the basic type of the glyph as defined by
* the GlyphClassDef table.
*/
if
(
*
property
&
LookupFlag
::
MarkAttachmentType
)
basic_glyph_class
=
HB_OT_LAYOUT_GLYPH_CLASS_MARK
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录