Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
20072a2e
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
9 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
20072a2e
编写于
7月 30, 2019
作者:
E
Ebrahim Byagowi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[metrics] Make values match their enum type naming
上级
ed2965a8
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
98 addition
and
98 deletion
+98
-98
src/hb-ot-font.cc
src/hb-ot-font.cc
+6
-6
src/hb-ot-metrics.cc
src/hb-ot-metrics.cc
+50
-50
src/hb-ot-metrics.h
src/hb-ot-metrics.h
+29
-29
test/api/test-ot-metrics.c
test/api/test-ot-metrics.c
+13
-13
未找到文件。
src/hb-ot-font.cc
浏览文件 @
20072a2e
...
@@ -234,9 +234,9 @@ hb_ot_get_font_h_extents (hb_font_t *font,
...
@@ -234,9 +234,9 @@ hb_ot_get_font_h_extents (hb_font_t *font,
hb_font_extents_t
*
metrics
,
hb_font_extents_t
*
metrics
,
void
*
user_data
HB_UNUSED
)
void
*
user_data
HB_UNUSED
)
{
{
return
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
,
&
metrics
->
ascender
)
&&
return
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
,
&
metrics
->
ascender
)
&&
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_HORIZONTAL_DESCENDER
,
&
metrics
->
descender
)
&&
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER
,
&
metrics
->
descender
)
&&
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_HORIZONTAL_LINE_GAP
,
&
metrics
->
line_gap
);
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP
,
&
metrics
->
line_gap
);
}
}
static
hb_bool_t
static
hb_bool_t
...
@@ -245,9 +245,9 @@ hb_ot_get_font_v_extents (hb_font_t *font,
...
@@ -245,9 +245,9 @@ hb_ot_get_font_v_extents (hb_font_t *font,
hb_font_extents_t
*
metrics
,
hb_font_extents_t
*
metrics
,
void
*
user_data
HB_UNUSED
)
void
*
user_data
HB_UNUSED
)
{
{
return
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_VERTICAL_ASCENDER
,
&
metrics
->
ascender
)
&&
return
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_
TAG_
VERTICAL_ASCENDER
,
&
metrics
->
ascender
)
&&
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_VERTICAL_DESCENDER
,
&
metrics
->
descender
)
&&
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_
TAG_
VERTICAL_DESCENDER
,
&
metrics
->
descender
)
&&
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_VERTICAL_LINE_GAP
,
&
metrics
->
line_gap
);
_hb_ot_metrics_get_position_common
(
font
,
HB_OT_METRICS_
TAG_
VERTICAL_LINE_GAP
,
&
metrics
->
line_gap
);
}
}
#if HB_USE_ATEXIT
#if HB_USE_ATEXIT
...
...
src/hb-ot-metrics.cc
浏览文件 @
20072a2e
...
@@ -36,11 +36,11 @@
...
@@ -36,11 +36,11 @@
static
float
static
float
_fix_ascender_descender
(
float
value
,
hb_ot_metrics_tag_t
metrics_tag
)
_fix_ascender_descender
(
float
value
,
hb_ot_metrics_tag_t
metrics_tag
)
{
{
if
(
metrics_tag
==
HB_OT_METRICS_HORIZONTAL_ASCENDER
||
if
(
metrics_tag
==
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
||
metrics_tag
==
HB_OT_METRICS_VERTICAL_ASCENDER
)
metrics_tag
==
HB_OT_METRICS_
TAG_
VERTICAL_ASCENDER
)
return
fabs
((
double
)
value
);
return
fabs
((
double
)
value
);
if
(
metrics_tag
==
HB_OT_METRICS_HORIZONTAL_DESCENDER
||
if
(
metrics_tag
==
HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER
||
metrics_tag
==
HB_OT_METRICS_VERTICAL_DESCENDER
)
metrics_tag
==
HB_OT_METRICS_
TAG_
VERTICAL_DESCENDER
)
return
-
fabs
((
double
)
value
);
return
-
fabs
((
double
)
value
);
return
value
;
return
value
;
}
}
...
@@ -68,18 +68,18 @@ _hb_ot_metrics_get_position_common (hb_font_t *font,
...
@@ -68,18 +68,18 @@ _hb_ot_metrics_get_position_common (hb_font_t *font,
(face->table.TABLE->has_data () && \
(face->table.TABLE->has_data () && \
(position && (*position = font->em_scalef_y (_fix_ascender_descender ( \
(position && (*position = font->em_scalef_y (_fix_ascender_descender ( \
face->table.TABLE->ATTR + GET_VAR, metrics_tag))), true))
face->table.TABLE->ATTR + GET_VAR, metrics_tag))), true))
case
HB_OT_METRICS_HORIZONTAL_ASCENDER
:
case
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
:
return
(
face
->
table
.
OS2
->
use_typo_metrics
()
&&
GET_METRIC_Y
(
OS2
,
sTypoAscender
))
||
return
(
face
->
table
.
OS2
->
use_typo_metrics
()
&&
GET_METRIC_Y
(
OS2
,
sTypoAscender
))
||
GET_METRIC_Y
(
hhea
,
ascender
);
GET_METRIC_Y
(
hhea
,
ascender
);
case
HB_OT_METRICS_HORIZONTAL_DESCENDER
:
case
HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER
:
return
(
face
->
table
.
OS2
->
use_typo_metrics
()
&&
GET_METRIC_Y
(
OS2
,
sTypoDescender
))
||
return
(
face
->
table
.
OS2
->
use_typo_metrics
()
&&
GET_METRIC_Y
(
OS2
,
sTypoDescender
))
||
GET_METRIC_Y
(
hhea
,
descender
);
GET_METRIC_Y
(
hhea
,
descender
);
case
HB_OT_METRICS_HORIZONTAL_LINE_GAP
:
case
HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP
:
return
(
face
->
table
.
OS2
->
use_typo_metrics
()
&&
GET_METRIC_Y
(
OS2
,
sTypoLineGap
))
||
return
(
face
->
table
.
OS2
->
use_typo_metrics
()
&&
GET_METRIC_Y
(
OS2
,
sTypoLineGap
))
||
GET_METRIC_Y
(
hhea
,
lineGap
);
GET_METRIC_Y
(
hhea
,
lineGap
);
case
HB_OT_METRICS_VERTICAL_ASCENDER
:
return
GET_METRIC_X
(
vhea
,
ascender
);
case
HB_OT_METRICS_
TAG_
VERTICAL_ASCENDER
:
return
GET_METRIC_X
(
vhea
,
ascender
);
case
HB_OT_METRICS_VERTICAL_DESCENDER
:
return
GET_METRIC_X
(
vhea
,
descender
);
case
HB_OT_METRICS_
TAG_
VERTICAL_DESCENDER
:
return
GET_METRIC_X
(
vhea
,
descender
);
case
HB_OT_METRICS_VERTICAL_LINE_GAP
:
return
GET_METRIC_X
(
vhea
,
lineGap
);
case
HB_OT_METRICS_
TAG_
VERTICAL_LINE_GAP
:
return
GET_METRIC_X
(
vhea
,
lineGap
);
#undef GET_METRIC_Y
#undef GET_METRIC_Y
#undef GET_METRIC_X
#undef GET_METRIC_X
#undef GET_VAR
#undef GET_VAR
...
@@ -101,12 +101,12 @@ _get_gasp (hb_face_t *face, float *result, hb_ot_metrics_tag_t metrics_tag)
...
@@ -101,12 +101,12 @@ _get_gasp (hb_face_t *face, float *result, hb_ot_metrics_tag_t metrics_tag)
#endif
#endif
/* Private tags for https://github.com/harfbuzz/harfbuzz/issues/1866 */
/* Private tags for https://github.com/harfbuzz/harfbuzz/issues/1866 */
#define _HB_OT_METRICS_HORIZONTAL_ASCENDER_OS2 HB_TAG ('O','a','s','c')
#define _HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER_OS2 HB_TAG ('O','a','s','c')
#define _HB_OT_METRICS_HORIZONTAL_ASCENDER_HHEA HB_TAG ('H','a','s','c')
#define _HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER_HHEA HB_TAG ('H','a','s','c')
#define _HB_OT_METRICS_HORIZONTAL_DESCENDER_OS2 HB_TAG ('O','d','s','c')
#define _HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER_OS2 HB_TAG ('O','d','s','c')
#define _HB_OT_METRICS_HORIZONTAL_DESCENDER_HHEA HB_TAG ('H','d','s','c')
#define _HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER_HHEA HB_TAG ('H','d','s','c')
#define _HB_OT_METRICS_HORIZONTAL_LINE_GAP_OS2 HB_TAG ('O','l','g','p')
#define _HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP_OS2 HB_TAG ('O','l','g','p')
#define _HB_OT_METRICS_HORIZONTAL_LINE_GAP_HHEA HB_TAG ('H','l','g','p')
#define _HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP_HHEA HB_TAG ('H','l','g','p')
/**
/**
* hb_ot_metrics_get_position:
* hb_ot_metrics_get_position:
...
@@ -127,12 +127,12 @@ hb_ot_metrics_get_position (hb_font_t *font,
...
@@ -127,12 +127,12 @@ hb_ot_metrics_get_position (hb_font_t *font,
hb_face_t
*
face
=
font
->
face
;
hb_face_t
*
face
=
font
->
face
;
switch
((
unsigned
)
metrics_tag
)
switch
((
unsigned
)
metrics_tag
)
{
{
case
HB_OT_METRICS_HORIZONTAL_ASCENDER
:
case
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
:
case
HB_OT_METRICS_HORIZONTAL_DESCENDER
:
case
HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER
:
case
HB_OT_METRICS_HORIZONTAL_LINE_GAP
:
case
HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP
:
case
HB_OT_METRICS_VERTICAL_ASCENDER
:
case
HB_OT_METRICS_
TAG_
VERTICAL_ASCENDER
:
case
HB_OT_METRICS_VERTICAL_DESCENDER
:
case
HB_OT_METRICS_
TAG_
VERTICAL_DESCENDER
:
case
HB_OT_METRICS_VERTICAL_LINE_GAP
:
return
_hb_ot_metrics_get_position_common
(
font
,
metrics_tag
,
position
);
case
HB_OT_METRICS_
TAG_
VERTICAL_LINE_GAP
:
return
_hb_ot_metrics_get_position_common
(
font
,
metrics_tag
,
position
);
#ifndef HB_NO_VAR
#ifndef HB_NO_VAR
#define GET_VAR hb_ot_metrics_get_variation (font, metrics_tag)
#define GET_VAR hb_ot_metrics_get_variation (font, metrics_tag)
#else
#else
...
@@ -144,36 +144,36 @@ hb_ot_metrics_get_position (hb_font_t *font,
...
@@ -144,36 +144,36 @@ hb_ot_metrics_get_position (hb_font_t *font,
#define GET_METRIC_Y(TABLE, ATTR) \
#define GET_METRIC_Y(TABLE, ATTR) \
(face->table.TABLE->has_data () && \
(face->table.TABLE->has_data () && \
(position && (*position = font->em_scalef_y (face->table.TABLE->ATTR + GET_VAR)), true))
(position && (*position = font->em_scalef_y (face->table.TABLE->ATTR + GET_VAR)), true))
case
HB_OT_METRICS_HORIZONTAL_CLIPPING_ASCENT
:
return
GET_METRIC_Y
(
OS2
,
usWinAscent
);
case
HB_OT_METRICS_
TAG_
HORIZONTAL_CLIPPING_ASCENT
:
return
GET_METRIC_Y
(
OS2
,
usWinAscent
);
case
HB_OT_METRICS_HORIZONTAL_CLIPPING_DESCENT
:
return
GET_METRIC_Y
(
OS2
,
usWinDescent
);
case
HB_OT_METRICS_
TAG_
HORIZONTAL_CLIPPING_DESCENT
:
return
GET_METRIC_Y
(
OS2
,
usWinDescent
);
case
HB_OT_METRICS_HORIZONTAL_CARET_RISE
:
return
GET_METRIC_Y
(
hhea
,
caretSlopeRise
);
case
HB_OT_METRICS_
TAG_
HORIZONTAL_CARET_RISE
:
return
GET_METRIC_Y
(
hhea
,
caretSlopeRise
);
case
HB_OT_METRICS_HORIZONTAL_CARET_RUN
:
return
GET_METRIC_X
(
hhea
,
caretSlopeRun
);
case
HB_OT_METRICS_
TAG_
HORIZONTAL_CARET_RUN
:
return
GET_METRIC_X
(
hhea
,
caretSlopeRun
);
case
HB_OT_METRICS_HORIZONTAL_CARET_OFFSET
:
return
GET_METRIC_X
(
hhea
,
caretOffset
);
case
HB_OT_METRICS_
TAG_
HORIZONTAL_CARET_OFFSET
:
return
GET_METRIC_X
(
hhea
,
caretOffset
);
case
HB_OT_METRICS_VERTICAL_CARET_RISE
:
return
GET_METRIC_X
(
vhea
,
caretSlopeRise
);
case
HB_OT_METRICS_
TAG_
VERTICAL_CARET_RISE
:
return
GET_METRIC_X
(
vhea
,
caretSlopeRise
);
case
HB_OT_METRICS_VERTICAL_CARET_RUN
:
return
GET_METRIC_Y
(
vhea
,
caretSlopeRun
);
case
HB_OT_METRICS_
TAG_
VERTICAL_CARET_RUN
:
return
GET_METRIC_Y
(
vhea
,
caretSlopeRun
);
case
HB_OT_METRICS_VERTICAL_CARET_OFFSET
:
return
GET_METRIC_Y
(
vhea
,
caretOffset
);
case
HB_OT_METRICS_
TAG_
VERTICAL_CARET_OFFSET
:
return
GET_METRIC_Y
(
vhea
,
caretOffset
);
case
HB_OT_METRICS_X_HEIGHT
:
return
GET_METRIC_Y
(
OS2
->
v2
(),
sxHeight
);
case
HB_OT_METRICS_
TAG_
X_HEIGHT
:
return
GET_METRIC_Y
(
OS2
->
v2
(),
sxHeight
);
case
HB_OT_METRICS_CAP_HEIGHT
:
return
GET_METRIC_Y
(
OS2
->
v2
(),
sCapHeight
);
case
HB_OT_METRICS_
TAG_
CAP_HEIGHT
:
return
GET_METRIC_Y
(
OS2
->
v2
(),
sCapHeight
);
case
HB_OT_METRICS_SUBSCRIPT_EM_X_SIZE
:
return
GET_METRIC_X
(
OS2
,
ySubscriptXSize
);
case
HB_OT_METRICS_
TAG_
SUBSCRIPT_EM_X_SIZE
:
return
GET_METRIC_X
(
OS2
,
ySubscriptXSize
);
case
HB_OT_METRICS_SUBSCRIPT_EM_Y_SIZE
:
return
GET_METRIC_Y
(
OS2
,
ySubscriptYSize
);
case
HB_OT_METRICS_
TAG_
SUBSCRIPT_EM_Y_SIZE
:
return
GET_METRIC_Y
(
OS2
,
ySubscriptYSize
);
case
HB_OT_METRICS_SUBSCRIPT_EM_X_OFFSET
:
return
GET_METRIC_X
(
OS2
,
ySubscriptXOffset
);
case
HB_OT_METRICS_
TAG_
SUBSCRIPT_EM_X_OFFSET
:
return
GET_METRIC_X
(
OS2
,
ySubscriptXOffset
);
case
HB_OT_METRICS_SUBSCRIPT_EM_Y_OFFSET
:
return
GET_METRIC_Y
(
OS2
,
ySubscriptYOffset
);
case
HB_OT_METRICS_
TAG_
SUBSCRIPT_EM_Y_OFFSET
:
return
GET_METRIC_Y
(
OS2
,
ySubscriptYOffset
);
case
HB_OT_METRICS_SUPERSCRIPT_EM_X_SIZE
:
return
GET_METRIC_X
(
OS2
,
ySuperscriptXSize
);
case
HB_OT_METRICS_
TAG_
SUPERSCRIPT_EM_X_SIZE
:
return
GET_METRIC_X
(
OS2
,
ySuperscriptXSize
);
case
HB_OT_METRICS_SUPERSCRIPT_EM_Y_SIZE
:
return
GET_METRIC_Y
(
OS2
,
ySuperscriptYSize
);
case
HB_OT_METRICS_
TAG_
SUPERSCRIPT_EM_Y_SIZE
:
return
GET_METRIC_Y
(
OS2
,
ySuperscriptYSize
);
case
HB_OT_METRICS_SUPERSCRIPT_EM_X_OFFSET
:
return
GET_METRIC_X
(
OS2
,
ySuperscriptXOffset
);
case
HB_OT_METRICS_
TAG_
SUPERSCRIPT_EM_X_OFFSET
:
return
GET_METRIC_X
(
OS2
,
ySuperscriptXOffset
);
case
HB_OT_METRICS_SUPERSCRIPT_EM_Y_OFFSET
:
return
GET_METRIC_Y
(
OS2
,
ySuperscriptYOffset
);
case
HB_OT_METRICS_
TAG_
SUPERSCRIPT_EM_Y_OFFSET
:
return
GET_METRIC_Y
(
OS2
,
ySuperscriptYOffset
);
case
HB_OT_METRICS_STRIKEOUT_SIZE
:
return
GET_METRIC_Y
(
OS2
,
yStrikeoutSize
);
case
HB_OT_METRICS_
TAG_
STRIKEOUT_SIZE
:
return
GET_METRIC_Y
(
OS2
,
yStrikeoutSize
);
case
HB_OT_METRICS_STRIKEOUT_OFFSET
:
return
GET_METRIC_Y
(
OS2
,
yStrikeoutPosition
);
case
HB_OT_METRICS_
TAG_
STRIKEOUT_OFFSET
:
return
GET_METRIC_Y
(
OS2
,
yStrikeoutPosition
);
case
HB_OT_METRICS_UNDERLINE_SIZE
:
return
GET_METRIC_Y
(
post
->
table
,
underlineThickness
);
case
HB_OT_METRICS_
TAG_
UNDERLINE_SIZE
:
return
GET_METRIC_Y
(
post
->
table
,
underlineThickness
);
case
HB_OT_METRICS_UNDERLINE_OFFSET
:
return
GET_METRIC_Y
(
post
->
table
,
underlinePosition
);
case
HB_OT_METRICS_
TAG_
UNDERLINE_OFFSET
:
return
GET_METRIC_Y
(
post
->
table
,
underlinePosition
);
/* Private tags */
/* Private tags */
case
_HB_OT_METRICS_HORIZONTAL_ASCENDER_OS2
:
return
GET_METRIC_Y
(
OS2
,
sTypoAscender
);
case
_HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER_OS2
:
return
GET_METRIC_Y
(
OS2
,
sTypoAscender
);
case
_HB_OT_METRICS_HORIZONTAL_ASCENDER_HHEA
:
return
GET_METRIC_Y
(
hhea
,
ascender
);
case
_HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER_HHEA
:
return
GET_METRIC_Y
(
hhea
,
ascender
);
case
_HB_OT_METRICS_HORIZONTAL_DESCENDER_OS2
:
return
GET_METRIC_Y
(
OS2
,
sTypoDescender
);
case
_HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER_OS2
:
return
GET_METRIC_Y
(
OS2
,
sTypoDescender
);
case
_HB_OT_METRICS_HORIZONTAL_DESCENDER_HHEA
:
return
GET_METRIC_Y
(
hhea
,
descender
);
case
_HB_OT_METRICS_
TAG_
HORIZONTAL_DESCENDER_HHEA
:
return
GET_METRIC_Y
(
hhea
,
descender
);
case
_HB_OT_METRICS_HORIZONTAL_LINE_GAP_OS2
:
return
GET_METRIC_Y
(
OS2
,
sTypoLineGap
);
case
_HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP_OS2
:
return
GET_METRIC_Y
(
OS2
,
sTypoLineGap
);
case
_HB_OT_METRICS_HORIZONTAL_LINE_GAP_HHEA
:
return
GET_METRIC_Y
(
hhea
,
lineGap
);
case
_HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP_HHEA
:
return
GET_METRIC_Y
(
hhea
,
lineGap
);
#undef GET_METRIC_Y
#undef GET_METRIC_Y
#undef GET_METRIC_X
#undef GET_METRIC_X
#undef GET_VAR
#undef GET_VAR
...
...
src/hb-ot-metrics.h
浏览文件 @
20072a2e
...
@@ -43,36 +43,36 @@ HB_BEGIN_DECLS
...
@@ -43,36 +43,36 @@ HB_BEGIN_DECLS
* Since: REPLACEME
* Since: REPLACEME
**/
**/
typedef
enum
{
typedef
enum
{
HB_OT_METRICS_HORIZONTAL_ASCENDER
=
HB_TAG
(
'h'
,
'a'
,
's'
,
'c'
),
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
=
HB_TAG
(
'h'
,
'a'
,
's'
,
'c'
),
HB_OT_METRICS_
HORIZONTAL_DESCENDER
=
HB_TAG
(
'h'
,
'd'
,
's'
,
'c'
),
HB_OT_METRICS_
TAG_HORIZONTAL_DESCENDER
=
HB_TAG
(
'h'
,
'd'
,
's'
,
'c'
),
HB_OT_METRICS_HORIZONTAL_LINE_GAP
=
HB_TAG
(
'h'
,
'l'
,
'g'
,
'p'
),
HB_OT_METRICS_
TAG_
HORIZONTAL_LINE_GAP
=
HB_TAG
(
'h'
,
'l'
,
'g'
,
'p'
),
HB_OT_METRICS_HORIZONTAL_CLIPPING_ASCENT
=
HB_TAG
(
'h'
,
'c'
,
'l'
,
'a'
),
HB_OT_METRICS_
TAG_
HORIZONTAL_CLIPPING_ASCENT
=
HB_TAG
(
'h'
,
'c'
,
'l'
,
'a'
),
HB_OT_METRICS_HORIZONTAL_CLIPPING_DESCENT
=
HB_TAG
(
'h'
,
'c'
,
'l'
,
'd'
),
HB_OT_METRICS_
TAG_
HORIZONTAL_CLIPPING_DESCENT
=
HB_TAG
(
'h'
,
'c'
,
'l'
,
'd'
),
HB_OT_METRICS_VERTICAL_ASCENDER
=
HB_TAG
(
'v'
,
'a'
,
's'
,
'c'
),
HB_OT_METRICS_
TAG_
VERTICAL_ASCENDER
=
HB_TAG
(
'v'
,
'a'
,
's'
,
'c'
),
HB_OT_METRICS_VERTICAL_DESCENDER
=
HB_TAG
(
'v'
,
'd'
,
's'
,
'c'
),
HB_OT_METRICS_
TAG_
VERTICAL_DESCENDER
=
HB_TAG
(
'v'
,
'd'
,
's'
,
'c'
),
HB_OT_METRICS_VERTICAL_LINE_GAP
=
HB_TAG
(
'v'
,
'l'
,
'g'
,
'p'
),
HB_OT_METRICS_
TAG_
VERTICAL_LINE_GAP
=
HB_TAG
(
'v'
,
'l'
,
'g'
,
'p'
),
HB_OT_METRICS_
HORIZONTAL_CARET_RISE
=
HB_TAG
(
'h'
,
'c'
,
'r'
,
's'
),
HB_OT_METRICS_
TAG_HORIZONTAL_CARET_RISE
=
HB_TAG
(
'h'
,
'c'
,
'r'
,
's'
),
HB_OT_METRICS_
HORIZONTAL_CARET_RUN
=
HB_TAG
(
'h'
,
'c'
,
'r'
,
'n'
),
HB_OT_METRICS_
TAG_HORIZONTAL_CARET_RUN
=
HB_TAG
(
'h'
,
'c'
,
'r'
,
'n'
),
HB_OT_METRICS_
HORIZONTAL_CARET_OFFSET
=
HB_TAG
(
'h'
,
'c'
,
'o'
,
'f'
),
HB_OT_METRICS_
TAG_HORIZONTAL_CARET_OFFSET
=
HB_TAG
(
'h'
,
'c'
,
'o'
,
'f'
),
HB_OT_METRICS_VERTICAL_CARET_RISE
=
HB_TAG
(
'v'
,
'c'
,
'r'
,
's'
),
HB_OT_METRICS_
TAG_
VERTICAL_CARET_RISE
=
HB_TAG
(
'v'
,
'c'
,
'r'
,
's'
),
HB_OT_METRICS_VERTICAL_CARET_RUN
=
HB_TAG
(
'v'
,
'c'
,
'r'
,
'n'
),
HB_OT_METRICS_
TAG_
VERTICAL_CARET_RUN
=
HB_TAG
(
'v'
,
'c'
,
'r'
,
'n'
),
HB_OT_METRICS_
VERTICAL_CARET_OFFSET
=
HB_TAG
(
'v'
,
'c'
,
'o'
,
'f'
),
HB_OT_METRICS_
TAG_VERTICAL_CARET_OFFSET
=
HB_TAG
(
'v'
,
'c'
,
'o'
,
'f'
),
HB_OT_METRICS_X_HEIGHT
=
HB_TAG
(
'x'
,
'h'
,
'g'
,
't'
),
HB_OT_METRICS_
TAG_
X_HEIGHT
=
HB_TAG
(
'x'
,
'h'
,
'g'
,
't'
),
HB_OT_METRICS_CAP_HEIGHT
=
HB_TAG
(
'c'
,
'p'
,
'h'
,
't'
),
HB_OT_METRICS_
TAG_
CAP_HEIGHT
=
HB_TAG
(
'c'
,
'p'
,
'h'
,
't'
),
HB_OT_METRICS_SUBSCRIPT_EM_X_SIZE
=
HB_TAG
(
's'
,
'b'
,
'x'
,
's'
),
HB_OT_METRICS_
TAG_
SUBSCRIPT_EM_X_SIZE
=
HB_TAG
(
's'
,
'b'
,
'x'
,
's'
),
HB_OT_METRICS_SUBSCRIPT_EM_Y_SIZE
=
HB_TAG
(
's'
,
'b'
,
'y'
,
's'
),
HB_OT_METRICS_
TAG_
SUBSCRIPT_EM_Y_SIZE
=
HB_TAG
(
's'
,
'b'
,
'y'
,
's'
),
HB_OT_METRICS_
SUBSCRIPT_EM_X_OFFSET
=
HB_TAG
(
's'
,
'b'
,
'x'
,
'o'
),
HB_OT_METRICS_
TAG_SUBSCRIPT_EM_X_OFFSET
=
HB_TAG
(
's'
,
'b'
,
'x'
,
'o'
),
HB_OT_METRICS_
SUBSCRIPT_EM_Y_OFFSET
=
HB_TAG
(
's'
,
'b'
,
'y'
,
'o'
),
HB_OT_METRICS_
TAG_SUBSCRIPT_EM_Y_OFFSET
=
HB_TAG
(
's'
,
'b'
,
'y'
,
'o'
),
HB_OT_METRICS_
SUPERSCRIPT_EM_X_SIZE
=
HB_TAG
(
's'
,
'p'
,
'x'
,
's'
),
HB_OT_METRICS_
TAG_SUPERSCRIPT_EM_X_SIZE
=
HB_TAG
(
's'
,
'p'
,
'x'
,
's'
),
HB_OT_METRICS_
SUPERSCRIPT_EM_Y_SIZE
=
HB_TAG
(
's'
,
'p'
,
'y'
,
's'
),
HB_OT_METRICS_
TAG_SUPERSCRIPT_EM_Y_SIZE
=
HB_TAG
(
's'
,
'p'
,
'y'
,
's'
),
HB_OT_METRICS_
SUPERSCRIPT_EM_X_OFFSET
=
HB_TAG
(
's'
,
'p'
,
'x'
,
'o'
),
HB_OT_METRICS_
TAG_SUPERSCRIPT_EM_X_OFFSET
=
HB_TAG
(
's'
,
'p'
,
'x'
,
'o'
),
HB_OT_METRICS_
SUPERSCRIPT_EM_Y_OFFSET
=
HB_TAG
(
's'
,
'p'
,
'y'
,
'o'
),
HB_OT_METRICS_
TAG_SUPERSCRIPT_EM_Y_OFFSET
=
HB_TAG
(
's'
,
'p'
,
'y'
,
'o'
),
HB_OT_METRICS_
STRIKEOUT_SIZE
=
HB_TAG
(
's'
,
't'
,
'r'
,
's'
),
HB_OT_METRICS_
TAG_STRIKEOUT_SIZE
=
HB_TAG
(
's'
,
't'
,
'r'
,
's'
),
HB_OT_METRICS_STRIKEOUT_OFFSET
=
HB_TAG
(
's'
,
't'
,
'r'
,
'o'
),
HB_OT_METRICS_
TAG_
STRIKEOUT_OFFSET
=
HB_TAG
(
's'
,
't'
,
'r'
,
'o'
),
HB_OT_METRICS_
UNDERLINE_SIZE
=
HB_TAG
(
'u'
,
'n'
,
'd'
,
's'
),
HB_OT_METRICS_
TAG_UNDERLINE_SIZE
=
HB_TAG
(
'u'
,
'n'
,
'd'
,
's'
),
HB_OT_METRICS_UNDERLINE_OFFSET
=
HB_TAG
(
'u'
,
'n'
,
'd'
,
'o'
),
HB_OT_METRICS_
TAG_
UNDERLINE_OFFSET
=
HB_TAG
(
'u'
,
'n'
,
'd'
,
'o'
),
_HB_OT_METRICS_MAX_VALUE
=
HB_TAG_MAX_SIGNED
/*< skip >*/
_HB_OT_METRICS_
TAG_
MAX_VALUE
=
HB_TAG_MAX_SIGNED
/*< skip >*/
}
hb_ot_metrics_tag_t
;
}
hb_ot_metrics_tag_t
;
HB_EXTERN
hb_bool_t
HB_EXTERN
hb_bool_t
...
...
test/api/test-ot-metrics.c
浏览文件 @
20072a2e
...
@@ -36,12 +36,12 @@ test_ot_metrics_get_no_var (void)
...
@@ -36,12 +36,12 @@ test_ot_metrics_get_no_var (void)
hb_face_t
*
face
=
hb_test_open_font_file
(
"fonts/cpal-v0.ttf"
);
hb_face_t
*
face
=
hb_test_open_font_file
(
"fonts/cpal-v0.ttf"
);
hb_font_t
*
font
=
hb_font_create
(
face
);
hb_font_t
*
font
=
hb_font_create
(
face
);
hb_position_t
value
;
hb_position_t
value
;
g_assert
(
hb_ot_metrics_get_position
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
,
&
value
));
g_assert
(
hb_ot_metrics_get_position
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
,
&
value
));
g_assert_cmpint
(
value
,
==
,
1000
);
g_assert_cmpint
(
value
,
==
,
1000
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_y_variation
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_y_variation
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_X_HEIGHT
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_
TAG_
X_HEIGHT
),
==
,
0
);
// g_assert_cmpint ((int) hb_ot_metrics_get_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0);
// g_assert_cmpint ((int) hb_ot_metrics_get_variation (font, HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER), ==, 0);
hb_font_destroy
(
font
);
hb_font_destroy
(
font
);
hb_face_destroy
(
face
);
hb_face_destroy
(
face
);
}
}
...
@@ -52,18 +52,18 @@ test_ot_metrics_get_var (void)
...
@@ -52,18 +52,18 @@ test_ot_metrics_get_var (void)
hb_face_t
*
face
=
hb_test_open_font_file
(
"fonts/TestCFF2VF.otf"
);
hb_face_t
*
face
=
hb_test_open_font_file
(
"fonts/TestCFF2VF.otf"
);
hb_font_t
*
font
=
hb_font_create
(
face
);
hb_font_t
*
font
=
hb_font_create
(
face
);
hb_position_t
value
;
hb_position_t
value
;
g_assert
(
hb_ot_metrics_get_position
(
font
,
HB_OT_METRICS_X_HEIGHT
,
&
value
));
g_assert
(
hb_ot_metrics_get_position
(
font
,
HB_OT_METRICS_
TAG_
X_HEIGHT
,
&
value
));
g_assert_cmpint
(
value
,
==
,
486
);
g_assert_cmpint
(
value
,
==
,
486
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_y_variation
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_y_variation
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_X_HEIGHT
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_
TAG_
X_HEIGHT
),
==
,
0
);
float
coords
[]
=
{
100
.
f
};
float
coords
[]
=
{
100
.
f
};
hb_font_set_var_coords_design
(
font
,
coords
,
1
);
hb_font_set_var_coords_design
(
font
,
coords
,
1
);
g_assert
(
hb_ot_metrics_get_position
(
font
,
HB_OT_METRICS_X_HEIGHT
,
&
value
));
g_assert
(
hb_ot_metrics_get_position
(
font
,
HB_OT_METRICS_
TAG_
X_HEIGHT
,
&
value
));
g_assert_cmpint
(
value
,
==
,
478
);
g_assert_cmpint
(
value
,
==
,
478
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_y_variation
(
font
,
HB_OT_METRICS_HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_y_variation
(
font
,
HB_OT_METRICS_
TAG_
HORIZONTAL_ASCENDER
),
==
,
0
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_X_HEIGHT
),
==
,
-
8
);
g_assert_cmpint
(
hb_ot_metrics_get_x_variation
(
font
,
HB_OT_METRICS_
TAG_
X_HEIGHT
),
==
,
-
8
);
hb_font_destroy
(
font
);
hb_font_destroy
(
font
);
hb_face_destroy
(
face
);
hb_face_destroy
(
face
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录