Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
4c63c823
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看板
未验证
提交
4c63c823
编写于
3月 10, 2018
作者:
E
Ebrahim Byagowi
提交者:
GitHub
3月 10, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[ot-color] sbix table implementation (#870)
上级
62b3d8fb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
130 addition
and
0 deletion
+130
-0
src/Makefile.sources
src/Makefile.sources
+1
-0
src/hb-ot-color-sbix-table.hh
src/hb-ot-color-sbix-table.hh
+128
-0
src/hb-ot-layout.cc
src/hb-ot-layout.cc
+1
-0
未找到文件。
src/Makefile.sources
浏览文件 @
4c63c823
...
...
@@ -18,6 +18,7 @@ HB_BASE_sources = \
hb-open-file-private.hh
\
hb-open-type-private.hh
\
hb-ot-color-cbdt-table.hh
\
hb-ot-color-sbix-table.hh
\
hb-ot-cmap-table.hh
\
hb-ot-glyf-table.hh
\
hb-ot-hdmx-table.hh
\
...
...
src/hb-ot-color-sbix-table.hh
0 → 100644
浏览文件 @
4c63c823
/*
* Copyright © 2018 Ebrahim Byagowi
*
* 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.
*/
#ifndef HB_OT_COLOR_SBIX_TABLE_HH
#define HB_OT_COLOR_SBIX_TABLE_HH
#include "hb-open-type-private.hh"
#define HB_OT_TAG_SBIX HB_TAG('s','b','i','x')
namespace
OT
{
struct
SBIXGlyph
{
friend
struct
sbix
;
protected:
HBINT16
originOffsetX
;
HBINT16
originOffsetY
;
unsigned
char
tag
[
4
];
HBUINT8
data
[
VAR
];
public:
DEFINE_SIZE_STATIC
(
9
);
};
struct
ImageTable
{
friend
struct
sbix
;
inline
bool
sanitize
(
hb_sanitize_context_t
*
c
)
const
{
TRACE_SANITIZE
(
this
);
return_trace
(
c
->
check_struct
(
this
)
&&
c
->
check_array
(
imageOffsetsZ
,
sizeof
(
HBUINT32
),
c
->
num_glyphs
)
&&
c
->
check_range
(
this
,
imageOffsetsZ
[
c
->
num_glyphs
]));
}
protected:
HBUINT16
ppem
;
HBUINT16
resolution
;
LOffsetTo
<
SBIXGlyph
>
imageOffsetsZ
[
VAR
];
// VAR=maxp.numGlyphs + 1
public:
DEFINE_SIZE_STATIC
(
8
);
};
/*
* sbix -- Standard Bitmap Graphics Table
*/
// It should be called with something like this so it can have
// access to num_glyph while sanitizing.
//
// static inline const OT::sbix*
// _get_sbix (hb_face_t *face)
// {
// OT::Sanitizer<OT::sbix> sanitizer;
// sanitizer.set_num_glyphs (face->get_num_glyphs ());
// hb_blob_t *sbix_blob = sanitizer.sanitize (face->reference_table (HB_OT_TAG_SBIX));
// return OT::Sanitizer<OT::sbix>::lock_instance (sbix_blob);
// }
//
struct
sbix
{
static
const
hb_tag_t
tableTag
=
HB_OT_TAG_SBIX
;
inline
bool
sanitize
(
hb_sanitize_context_t
*
c
)
const
{
TRACE_SANITIZE
(
this
);
if
(
!
(
c
->
check_struct
(
this
)
&&
imageTables
.
sanitize
(
c
,
this
)))
return_trace
(
false
);
for
(
unsigned
int
i
=
0
;
i
<
imageTables
.
len
;
++
i
)
if
(
!
(
imageTables
[
i
].
sanitize
(
c
,
this
)))
return_trace
(
false
);
// dump (c->num_glyphs, 8);
return_trace
(
true
);
}
// inline void dump (unsigned int num_glyphs, unsigned int group) const
// {
// const ImageTable &imageTable = imageTables[group](this);
// for (unsigned int i = 0; i < num_glyphs; ++i)
// if (imageTable.imageOffsetsZ[i + 1] - imageTable.imageOffsetsZ[i] > 0)
// {
// const SBIXGlyph &sbixGlyph = imageTable.imageOffsetsZ[i]((const void *) &imageTable);
// char outName[255];
// sprintf (outName, "out/%d-%d.png", group, i);
// FILE *f = fopen (outName, "wb");
// fwrite (sbixGlyph.data, 1,
// imageTable.imageOffsetsZ[i + 1] - imageTable.imageOffsetsZ[i] - 8, f);
// fclose (f);
// }
// }
protected:
HBUINT16
version
;
HBUINT16
flags
;
ArrayOf
<
LOffsetTo
<
ImageTable
>
,
HBUINT32
>
imageTables
;
public:
DEFINE_SIZE_ARRAY
(
8
,
imageTables
);
};
}
/* namespace OT */
#endif
/* HB_OT_COLOR_SBIX_TABLE_HH */
src/hb-ot-layout.cc
浏览文件 @
4c63c823
...
...
@@ -39,6 +39,7 @@
#include "hb-ot-name-table.hh" // Just so we compile it; unused otherwise.
#include "hb-ot-color-colr-table.hh"
#include "hb-ot-color-cpal-table.hh"
#include "hb-ot-color-sbix-table.hh" // Just so we compile it; unused otherwise.
#include "hb-ot-map-private.hh"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录