Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
e2ba96da
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看板
提交
e2ba96da
编写于
10月 28, 2018
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[cbdt] Refactor get_strike()
上级
6983cca9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
24 deletion
+17
-24
src/hb-ot-color-cbdt-table.hh
src/hb-ot-color-cbdt-table.hh
+16
-23
src/hb-ot-color.cc
src/hb-ot-color.cc
+1
-1
未找到文件。
src/hb-ot-color-cbdt-table.hh
浏览文件 @
e2ba96da
...
...
@@ -343,26 +343,21 @@ struct CBLC
}
protected:
const
IndexSubtableRecord
*
find_table
(
hb_codepoint_t
glyph
,
unsigned
int
*
x_ppem
,
unsigned
int
*
y_ppem
,
const
void
**
base
)
const
const
BitmapSizeTable
&
get_strike
(
hb_font_t
*
font
,
unsigned
int
*
x_ppem
,
unsigned
int
*
y_ppem
)
const
{
/* TODO: Make it possible to select strike. */
unsigned
int
count
=
sizeTables
.
len
;
for
(
uint32_t
i
=
0
;
i
<
count
;
++
i
)
{
unsigned
int
startGlyphIndex
=
sizeTables
.
arrayZ
[
i
].
startGlyphIndex
;
unsigned
int
endGlyphIndex
=
sizeTables
.
arrayZ
[
i
].
endGlyphIndex
;
if
(
startGlyphIndex
<=
glyph
&&
glyph
<=
endGlyphIndex
)
{
*
x_ppem
=
sizeTables
[
i
].
ppemX
;
*
y_ppem
=
sizeTables
[
i
].
ppemY
;
return
sizeTables
[
i
].
find_table
(
glyph
,
this
,
base
);
}
*
x_ppem
=
sizeTables
[
i
].
ppemX
;
*
y_ppem
=
sizeTables
[
i
].
ppemY
;
return
sizeTables
[
i
];
}
return
nullptr
;
*
x_ppem
=
*
y_ppem
=
0
;
return
Null
(
BitmapSizeTable
);
}
protected:
...
...
@@ -405,13 +400,13 @@ struct CBDT
inline
bool
get_extents
(
hb_font_t
*
font
,
hb_codepoint_t
glyph
,
hb_glyph_extents_t
*
extents
)
const
{
unsigned
int
x_ppem
=
font
->
x_ppem
,
y_ppem
=
font
->
y_ppem
;
if
(
!
cblc
)
return
false
;
unsigned
int
x_ppem
,
y_ppem
;
const
void
*
base
;
const
IndexSubtableRecord
*
subtable_record
=
this
->
cblc
->
find_table
(
glyph
,
&
x_ppem
,
&
y_ppem
,
&
base
);
const
BitmapSizeTable
&
strike
=
this
->
cblc
->
get_strike
(
font
,
&
x_ppem
,
&
y_ppem
);
const
IndexSubtableRecord
*
subtable_record
=
strike
.
find_table
(
glyph
,
cblc
,
&
base
);
if
(
!
subtable_record
||
!
x_ppem
||
!
y_ppem
)
return
false
;
...
...
@@ -454,23 +449,21 @@ struct CBDT
return
true
;
}
inline
hb_blob_t
*
reference_png
(
hb_codepoint_t
glyph_id
,
unsigned
int
x_ppem
,
unsigned
int
y_ppem
)
const
inline
hb_blob_t
*
reference_png
(
hb_font_t
*
font
,
hb_codepoint_t
glyph
)
const
{
if
(
!
cblc
)
return
hb_blob_get_empty
();
if
(
x_ppem
==
0
)
x_ppem
=
upem
;
if
(
y_ppem
==
0
)
y_ppem
=
upem
;
unsigned
int
x_ppem
,
y_ppem
;
const
void
*
base
;
const
IndexSubtableRecord
*
subtable_record
=
this
->
cblc
->
find_table
(
glyph_id
,
&
x_ppem
,
&
y_ppem
,
&
base
);
const
BitmapSizeTable
&
strike
=
this
->
cblc
->
get_strike
(
font
,
&
x_ppem
,
&
y_ppem
);
const
IndexSubtableRecord
*
subtable_record
=
strike
.
find_table
(
glyph
,
cblc
,
&
base
);
if
(
!
subtable_record
||
!
x_ppem
||
!
y_ppem
)
return
hb_blob_get_empty
();
unsigned
int
image_offset
=
0
,
image_length
=
0
,
image_format
=
0
;
if
(
!
subtable_record
->
get_image_data
(
glyph
_id
,
base
,
&
image_offset
,
&
image_length
,
&
image_format
))
if
(
!
subtable_record
->
get_image_data
(
glyph
,
base
,
&
image_offset
,
&
image_length
,
&
image_format
))
return
hb_blob_get_empty
();
switch
(
image_format
)
...
...
src/hb-ot-color.cc
浏览文件 @
e2ba96da
...
...
@@ -321,7 +321,7 @@ hb_ot_color_glyph_reference_png (hb_font_t *font, hb_codepoint_t glyph)
blob
=
_get_sbix
(
font
->
face
).
reference_png
(
font
,
glyph
,
nullptr
,
nullptr
,
nullptr
);
if
(
!
blob
->
length
&&
_get_cbdt
(
font
->
face
).
has_data
())
blob
=
_get_cbdt
(
font
->
face
).
reference_png
(
glyph
,
font
->
x_ppem
,
font
->
y_ppem
);
blob
=
_get_cbdt
(
font
->
face
).
reference_png
(
font
,
glyph
);
return
blob
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录