QtBase
v6.3.1
src
3rdparty
harfbuzz-ng
src
hb-subset-input.hh
Go to the documentation of this file.
1
/*
2
* Copyright © 2018 Google, Inc.
3
*
4
* This is part of HarfBuzz, a text shaping library.
5
*
6
* Permission is hereby granted, without written agreement and without
7
* license or royalty fees, to use, copy, modify, and distribute this
8
* software and its documentation for any purpose, provided that the
9
* above copyright notice and the following two paragraphs appear in
10
* all copies of this software.
11
*
12
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
* DAMAGE.
17
*
18
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
21
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
*
24
* Google Author(s): Garret Rieger, Roderick Sheeter
25
*/
26
27
#ifndef HB_SUBSET_INPUT_HH
28
#define HB_SUBSET_INPUT_HH
29
30
31
#include "
hb.hh
"
32
33
#include "
hb-subset.h
"
34
#include "
hb-map.hh
"
35
#include "
hb-set.hh
"
36
37
#include "
hb-font.hh
"
38
39
HB_MARK_AS_FLAG_T
(
hb_subset_flags_t
);
40
41
struct
hb_subset_input_t
42
{
43
hb_object_header_t
header
;
44
45
struct
sets_t
{
46
hb_set_t
*
glyphs
;
47
hb_set_t
*
unicodes
;
48
hb_set_t
*
no_subset_tables
;
49
hb_set_t
*
drop_tables
;
50
hb_set_t
*
name_ids
;
51
hb_set_t
*
name_languages
;
52
hb_set_t
*
layout_features
;
53
};
54
55
union
{
56
sets_t
sets
;
57
hb_set_t
*
set_ptrs
[
sizeof
(
sets_t
) /
sizeof
(
hb_set_t
*)];
58
};
59
60
unsigned
flags
;
61
62
inline
unsigned
num_sets
()
const
63
{
64
return
sizeof
(
set_ptrs
) /
sizeof
(
hb_set_t
*);
65
}
66
67
inline
hb_array_t<hb_set_t*>
sets_iter
()
68
{
69
return
hb_array_t<hb_set_t*>
(
set_ptrs
,
num_sets
());
70
}
71
72
bool
in_error
()
const
73
{
74
for
(
unsigned
i
= 0;
i
<
num_sets
();
i
++)
75
{
76
if
(
unlikely
(
set_ptrs
[
i
]->
in_error
()))
77
return
true
;
78
}
79
return
false
;
80
}
81
};
82
83
84
#endif
/* HB_SUBSET_INPUT_HH */
i
small capitals from c petite p scientific i
[1]
Definition:
afcover.h:80
hb-font.hh
hb-map.hh
hb-set.hh
HB_MARK_AS_FLAG_T
HB_MARK_AS_FLAG_T(hb_subset_flags_t)
hb-subset.h
hb_subset_flags_t
hb_subset_flags_t
Definition:
hb-subset.h:78
hb.hh
unlikely
#define unlikely(expr)
Definition:
hb.hh:251
hb_array_t
Definition:
hb-array.hh:49
hb_object_header_t
Definition:
hb-object.hh:194
hb_set_t
Definition:
hb-set.hh:160
hb_subset_input_t::sets_t
Definition:
hb-subset-input.hh:45
hb_subset_input_t::sets_t::name_ids
hb_set_t * name_ids
Definition:
hb-subset-input.hh:50
hb_subset_input_t::sets_t::name_languages
hb_set_t * name_languages
Definition:
hb-subset-input.hh:51
hb_subset_input_t::sets_t::no_subset_tables
hb_set_t * no_subset_tables
Definition:
hb-subset-input.hh:48
hb_subset_input_t::sets_t::drop_tables
hb_set_t * drop_tables
Definition:
hb-subset-input.hh:49
hb_subset_input_t::sets_t::glyphs
hb_set_t * glyphs
Definition:
hb-subset-input.hh:46
hb_subset_input_t::sets_t::layout_features
hb_set_t * layout_features
Definition:
hb-subset-input.hh:52
hb_subset_input_t::sets_t::unicodes
hb_set_t * unicodes
Definition:
hb-subset-input.hh:47
hb_subset_input_t
Definition:
hb-subset-input.hh:42
hb_subset_input_t::sets
sets_t sets
Definition:
hb-subset-input.hh:56
hb_subset_input_t::num_sets
unsigned num_sets() const
Definition:
hb-subset-input.hh:62
hb_subset_input_t::header
hb_object_header_t header
Definition:
hb-subset-input.hh:43
hb_subset_input_t::sets_iter
hb_array_t< hb_set_t * > sets_iter()
Definition:
hb-subset-input.hh:67
hb_subset_input_t::flags
unsigned flags
Definition:
hb-subset-input.hh:60
hb_subset_input_t::in_error
bool in_error() const
Definition:
hb-subset-input.hh:72
hb_subset_input_t::set_ptrs
hb_set_t * set_ptrs[sizeof(sets_t)/sizeof(hb_set_t *)]
Definition:
hb-subset-input.hh:57
Generated by
1.9.1