Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
e4bfccfb
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看板
提交
e4bfccfb
编写于
12月 04, 2016
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[CBDT] Minor
上级
b7068af4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
34 addition
and
25 deletion
+34
-25
src/hb-ot-cbdt-table.hh
src/hb-ot-cbdt-table.hh
+14
-7
src/hb-ot-font.cc
src/hb-ot-font.cc
+20
-18
未找到文件。
src/hb-ot-cbdt-table.hh
浏览文件 @
e4bfccfb
...
...
@@ -56,6 +56,15 @@ struct SmallGlyphMetrics
DEFINE_SIZE_STATIC
(
5
);
};
struct
BigGlyphMetrics
:
SmallGlyphMetrics
{
CHAR
vertBearingX
;
CHAR
vertBearingY
;
BYTE
vertAdvance
;
DEFINE_SIZE_STATIC
(
8
);
};
struct
SBitLineMetrics
{
inline
bool
sanitize
(
hb_sanitize_context_t
*
c
)
const
...
...
@@ -171,6 +180,7 @@ struct IndexSubtable
IndexSubtableHeader
header
;
IndexSubtableFormat1
format1
;
IndexSubtableFormat3
format3
;
/* TODO: Format 2, 4, 5. */
}
u
;
public:
DEFINE_SIZE_UNION
(
8
,
header
);
...
...
@@ -321,7 +331,6 @@ struct CBLC
{
/* TODO: Make it possible to select strike. */
const
BitmapSizeTable
*
sizeTable
=
&
Null
(
BitmapSizeTable
);
unsigned
int
count
=
sizeTables
.
len
;
for
(
uint32_t
i
=
0
;
i
<
count
;
++
i
)
{
...
...
@@ -329,15 +338,13 @@ struct CBLC
unsigned
int
endGlyphIndex
=
sizeTables
.
array
[
i
].
endGlyphIndex
;
if
(
startGlyphIndex
<=
glyph
&&
glyph
<=
endGlyphIndex
)
{
sizeTable
=
&
sizeTables
[
i
];
break
;
*
x_ppem
=
sizeTables
[
i
].
ppemX
;
*
y_ppem
=
sizeTables
[
i
].
ppemY
;
return
sizeTables
[
i
].
find_table
(
glyph
,
this
);
}
}
*
x_ppem
=
sizeTable
->
ppemX
;
*
y_ppem
=
sizeTable
->
ppemY
;
return
sizeTable
->
find_table
(
glyph
,
this
);
return
NULL
;
}
protected:
...
...
src/hb-ot-font.cc
浏览文件 @
e4bfccfb
...
...
@@ -246,14 +246,12 @@ struct hb_ot_face_cbdt_accelerator_t
{
unsigned
int
x_ppem
=
upem
,
y_ppem
=
upem
;
/* TODO Use font ppem if available. */
if
(
cblc
==
NULL
)
{
if
(
cblc
==
NULL
)
return
false
;
// Not a color bitmap font.
}
const
OT
::
IndexSubtableRecord
*
subtable_record
=
this
->
cblc
->
find_table
(
glyph
,
&
x_ppem
,
&
y_ppem
);
if
(
subtable_record
==
NULL
)
{
if
(
subtable_record
==
NULL
)
return
false
;
}
if
(
subtable_record
->
get_extents
(
extents
))
return
true
;
...
...
@@ -262,23 +260,27 @@ struct hb_ot_face_cbdt_accelerator_t
if
(
!
subtable_record
->
get_image_data
(
glyph
,
&
image_offset
,
&
image_length
,
&
image_format
))
return
false
;
if
(
unlikely
(
image_offset
>
cbdt_len
||
cbdt_len
-
image_offset
<
image_length
))
return
false
;
switch
(
image_format
)
{
case
17
:
{
if
(
unlikely
(
image_length
<
OT
::
GlyphBitmapDataFormat17
::
min_size
))
return
false
;
/* TODO Move the following into CBDT struct when adding more formats. */
const
OT
::
GlyphBitmapDataFormat17
&
glyphFormat17
=
OT
::
StructAtOffset
<
OT
::
GlyphBitmapDataFormat17
>
(
this
->
cbdt
,
image_offset
);
glyphFormat17
.
glyphMetrics
.
get_extents
(
extents
);
}
break
;
default:
// TODO: Support other image formats.
if
(
unlikely
(
image_offset
>
cbdt_len
||
cbdt_len
-
image_offset
<
image_length
))
return
false
;
switch
(
image_format
)
{
case
17
:
{
if
(
unlikely
(
image_length
<
OT
::
GlyphBitmapDataFormat17
::
min_size
))
return
false
;
const
OT
::
GlyphBitmapDataFormat17
&
glyphFormat17
=
OT
::
StructAtOffset
<
OT
::
GlyphBitmapDataFormat17
>
(
this
->
cbdt
,
image_offset
);
glyphFormat17
.
glyphMetrics
.
get_extents
(
extents
);
}
break
;
default:
// TODO: Support other image formats.
return
false
;
}
}
/* Convert to the font units. */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录