Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
587d4622
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
587d4622
编写于
4月 30, 2016
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[ot-font] Start implementing 'post' table, for accessing glyph names
上级
9abaaac4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
132 addition
and
1 deletion
+132
-1
src/Makefile.sources
src/Makefile.sources
+1
-0
src/hb-open-type-private.hh
src/hb-open-type-private.hh
+11
-1
src/hb-ot-font.cc
src/hb-ot-font.cc
+1
-0
src/hb-ot-post-table.hh
src/hb-ot-post-table.hh
+119
-0
未找到文件。
src/Makefile.sources
浏览文件 @
587d4622
...
...
@@ -28,6 +28,7 @@ HB_BASE_sources = \
hb-ot-maxp-table.hh
\
hb-ot-name-table.hh
\
hb-ot-os2-table.hh
\
hb-ot-post-table.hh
\
hb-ot-tag.cc
\
hb-private.hh
\
hb-set-private.hh
\
...
...
src/hb-open-type-private.hh
浏览文件 @
587d4622
...
...
@@ -101,7 +101,8 @@ static inline Type& StructAfter(TObject &X)
#define DEFINE_SIZE_STATIC(size) \
DEFINE_INSTANCE_ASSERTION (sizeof (*this) == (size)); \
static const unsigned int static_size = (size); \
static const unsigned int min_size = (size)
static const unsigned int min_size = (size); \
inline unsigned int get_size (void) const { return (size); }
#define DEFINE_SIZE_UNION(size, _member) \
DEFINE_INSTANCE_ASSERTION (this->u._member.static_size == (size)); \
...
...
@@ -671,6 +672,15 @@ struct F2DOT14 : SHORT
DEFINE_SIZE_STATIC
(
2
);
};
/* 32-bit signed fixed-point number (16.16). */
struct
Fixed
:
LONG
{
//inline float to_float (void) const { return ???; }
//inline void set_float (float f) { v.set (f * ???); }
public:
DEFINE_SIZE_STATIC
(
4
);
};
/* Date represented in number of seconds since 12:00 midnight, January 1,
* 1904. The value is represented as a signed 64-bit integer. */
struct
LONGDATETIME
...
...
src/hb-ot-font.cc
浏览文件 @
587d4622
...
...
@@ -36,6 +36,7 @@
#include "hb-ot-hhea-table.hh"
#include "hb-ot-hmtx-table.hh"
#include "hb-ot-os2-table.hh"
#include "hb-ot-post-table.hh"
struct
hb_ot_face_metrics_accelerator_t
...
...
src/hb-ot-post-table.hh
0 → 100644
浏览文件 @
587d4622
/*
* Copyright © 2016 Google, Inc.
*
* This is part of HarfBuzz, a text shaping library.
*
* Permission is hereby granted, without written agreement and without
* license or royalty fees, to use, copy, modify, and distribute this
* software and its documentation for any purpose, provided that the
* above copyright notice and the following two paragraphs appear in
* all copies of this software.
*
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*
* Google Author(s): Behdad Esfahbod
*/
#ifndef HB_OT_POST_TABLE_HH
#define HB_OT_POST_TABLE_HH
#include "hb-open-type-private.hh"
namespace
OT
{
/*
* post -- PostScript
*/
#define HB_OT_TAG_post HB_TAG('p','o','s','t')
struct
postV2Tail
{
inline
bool
sanitize
(
hb_sanitize_context_t
*
c
)
const
{
TRACE_SANITIZE
(
this
);
return_trace
(
numberOfGlyphs
.
sanitize
(
c
)
&&
c
->
check_array
(
glyphNameIndex
,
sizeof
(
USHORT
),
numberOfGlyphs
));
}
USHORT
numberOfGlyphs
;
/* Number of glyphs (this should be the
* same as numGlyphs in 'maxp' table). */
USHORT
glyphNameIndex
[
VAR
];
/* This is not an offset, but is the
* ordinal number of the glyph in 'post'
* string tables. */
BYTE
namesX
[
VAR
];
/* Glyph names with length bytes [variable]
* (a Pascal string). */
DEFINE_SIZE_ARRAY2
(
2
,
glyphNameIndex
,
namesX
);
};
struct
post
{
static
const
hb_tag_t
tableTag
=
HB_OT_TAG_post
;
inline
bool
sanitize
(
hb_sanitize_context_t
*
c
)
const
{
TRACE_SANITIZE
(
this
);
if
(
unlikely
(
!
c
->
check_struct
(
this
)))
return_trace
(
false
);
if
(
version
.
to_int
()
==
0x00020000
)
{
const
postV2Tail
&
v2
=
StructAfter
<
postV2Tail
>
(
*
this
);
return_trace
(
v2
.
sanitize
(
c
));
}
return_trace
(
true
);
}
public:
FixedVersion
<>
version
;
/* 0x00010000 for version 1.0
* 0x00020000 for version 2.0
* 0x00025000 for version 2.5 (deprecated)
* 0x00030000 for version 3.0 */
Fixed
italicAngle
;
/* Italic angle in counter-clockwise degrees
* from the vertical. Zero for upright text,
* negative for text that leans to the right
* (forward). */
FWORD
underlinePosition
;
/* This is the suggested distance of the top
* of the underline from the baseline
* (negative values indicate below baseline).
* The PostScript definition of this FontInfo
* dictionary key (the y coordinate of the
* center of the stroke) is not used for
* historical reasons. The value of the
* PostScript key may be calculated by
* subtracting half the underlineThickness
* from the value of this field. */
FWORD
underlineThickness
;
/* Suggested values for the underline
thickness. */
ULONG
isFixedPitch
;
/* Set to 0 if the font is proportionally
* spaced, non-zero if the font is not
* proportionally spaced (i.e. monospaced). */
ULONG
minMemType42
;
/* Minimum memory usage when an OpenType font
* is downloaded. */
ULONG
maxMemType42
;
/* Maximum memory usage when an OpenType font
* is downloaded. */
ULONG
minMemType1
;
/* Minimum memory usage when an OpenType font
* is downloaded as a Type 1 font. */
ULONG
maxMemType1
;
/* Maximum memory usage when an OpenType font
* is downloaded as a Type 1 font. */
/*postV2Tail v2[VAR];*/
DEFINE_SIZE_STATIC
(
32
);
};
}
/* namespace OT */
#endif
/* HB_OT_POST_TABLE_HH */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录