9#include <private/qstringiterator_p.h>
48 HB_SCRIPT_CANADIAN_SYLLABICS,
79 HB_SCRIPT_NEW_TAI_LUE,
82 HB_SCRIPT_SYLOTI_NAGRI,
83 HB_SCRIPT_OLD_PERSIAN,
110 HB_SCRIPT_EGYPTIAN_HIEROGLYPHS,
115 HB_SCRIPT_MEETEI_MAYEK,
116 HB_SCRIPT_IMPERIAL_ARAMAIC,
117 HB_SCRIPT_OLD_SOUTH_ARABIAN,
118 HB_SCRIPT_INSCRIPTIONAL_PARTHIAN,
119 HB_SCRIPT_INSCRIPTIONAL_PAHLAVI,
120 HB_SCRIPT_OLD_TURKIC,
130 HB_SCRIPT_MEROITIC_CURSIVE,
131 HB_SCRIPT_MEROITIC_HIEROGLYPHS,
134 HB_SCRIPT_SORA_SOMPENG,
138 HB_SCRIPT_CAUCASIAN_ALBANIAN,
143 HB_SCRIPT_PAHAWH_HMONG,
147 HB_SCRIPT_MANICHAEAN,
148 HB_SCRIPT_MENDE_KIKAKUI,
151 HB_SCRIPT_OLD_NORTH_ARABIAN,
154 HB_SCRIPT_PAU_CIN_HAU,
155 HB_SCRIPT_OLD_PERMIC,
156 HB_SCRIPT_PSALTER_PAHLAVI,
160 HB_SCRIPT_WARANG_CITI,
164 HB_SCRIPT_ANATOLIAN_HIEROGLYPHS,
167 HB_SCRIPT_OLD_HUNGARIAN,
168 HB_SCRIPT_SIGNWRITING,
179 HB_SCRIPT_MASARAM_GONDI,
182 HB_SCRIPT_ZANABAZAR_SQUARE,
186 HB_SCRIPT_GUNJALA_GONDI,
187 HB_SCRIPT_HANIFI_ROHINGYA,
189 HB_SCRIPT_MEDEFAIDRIN,
190 HB_SCRIPT_OLD_SOGDIAN,
195 HB_SCRIPT_NANDINAGARI,
196 HB_SCRIPT_NYIAKENG_PUACHUE_HMONG,
200#if !HB_VERSION_ATLEAST(2, 6, 7)
201 hb_script_t(HB_TAG(
'C',
'h',
'r',
's')),
202 hb_script_t(HB_TAG(
'D',
'i',
'a',
'k')),
203 hb_script_t(HB_TAG(
'K',
'i',
't',
's')),
204 hb_script_t(HB_TAG(
'Y',
'e',
'z',
'i')),
206 HB_SCRIPT_CHORASMIAN,
207 HB_SCRIPT_DIVES_AKURU,
208 HB_SCRIPT_KHITAN_SMALL_SCRIPT,
212#if !HB_VERSION_ATLEAST(3, 0, 0)
213 hb_script_t(HB_TAG(
'C',
'p',
'm',
'n')),
214 hb_script_t(HB_TAG(
'O',
'u',
'g',
'r')),
215 hb_script_t(HB_TAG(
'T',
'n',
's',
'a')),
216 hb_script_t(HB_TAG(
'T',
'o',
't',
'o')),
217 hb_script_t(HB_TAG(
'V',
'i',
't',
'h')),
219 HB_SCRIPT_CYPRO_MINOAN,
220 HB_SCRIPT_OLD_UYGHUR,
226#if !HB_VERSION_ATLEAST(5, 2, 0)
227 hb_script_t(HB_TAG(
'K',
'a',
'w',
'i')),
228 hb_script_t(HB_TAG(
'N',
'a',
'g',
'm')),
231 HB_SCRIPT_NAG_MUNDARI,
250static hb_unicode_combining_class_t
252 hb_codepoint_t unicode,
259 HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK,
260 HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK,
261 HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK,
263 HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER,
264 HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER,
265 HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER,
267 HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR,
268 HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR,
269 HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR,
271 HB_UNICODE_GENERAL_CATEGORY_CONTROL,
272 HB_UNICODE_GENERAL_CATEGORY_FORMAT,
273 HB_UNICODE_GENERAL_CATEGORY_SURROGATE,
274 HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE,
275 HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED,
277 HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER,
278 HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER,
279 HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER,
280 HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER,
281 HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER,
283 HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION,
284 HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION,
285 HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION,
286 HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION,
287 HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION,
288 HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION,
289 HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION,
291 HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL,
292 HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL,
293 HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL,
294 HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL
297static hb_unicode_general_category_t
299 hb_codepoint_t unicode,
307 hb_codepoint_t unicode,
315 hb_codepoint_t unicode,
323 hb_codepoint_t
a, hb_codepoint_t
b,
338 return !
it.hasNext();
344 hb_codepoint_t *
a, hb_codepoint_t *
b,
373 const hb_codepoint_t
c = jt.
next();
374 if (
c != *
a &&
c != ab) {
386 }
while (
it.hasNext());
400 funcs = hb_unicode_funcs_create(NULL);
410 hb_unicode_funcs_destroy(
funcs);
420 return qt_ufuncs()->funcs;
443 hb_codepoint_t unicode,
444 hb_codepoint_t *glyph,
457 hb_codepoint_t unicode, hb_codepoint_t ,
458 hb_codepoint_t *glyph,
472 hb_codepoint_t glyph,
483 g.advances = &advance;
487 return advance.
value();
492 hb_codepoint_t first_glyph, hb_codepoint_t second_glyph,
498 glyph_t glyphs[2] = { first_glyph, second_glyph };
504 g.advances = &advance;
508 return advance.
value();
513 hb_codepoint_t glyph,
514 hb_glyph_extents_t *extents,
522 extents->x_bearing = gm.
x.
value();
523 extents->y_bearing = gm.
y.
value();
532 hb_codepoint_t glyph,
533 unsigned int point_index, hb_position_t *
x, hb_position_t *
y,
568 funcs = hb_font_funcs_create();
578 hb_font_funcs_make_immutable(
funcs);
582 hb_font_funcs_destroy(
funcs);
602 return hb_blob_get_empty();
605 if (q_check_ptr(
buffer) ==
nullptr)
611 return hb_blob_create(
const_cast<const char *
>(
buffer),
length,
612 HB_MEMORY_MODE_WRITABLE,
659 hb_font_set_funcs(
font, qt_ffuncs()->
funcs, fe,
nullptr);
661 hb_font_set_ppem(
font,
int(x_ppem),
int(y_ppem));
static constexpr bool requiresSurrogates(char32_t ucs4) noexcept
Returns true if the UCS-4-encoded character specified by ucs4 can be split into the high and low part...
Script script() const noexcept
static constexpr auto fromUcs4(char32_t c) noexcept
QChar mirroredChar() const noexcept
Returns the mirrored character if this character is a mirrored character; otherwise returns the chara...
QString decomposition() const
Decomposes a character into it's constituent parts.
Category category() const noexcept
Returns the character's category.
unsigned char combiningClass() const noexcept
Returns the combining class for the character as defined in the Unicode standard.
Decomposition decompositionTag() const noexcept
Returns the tag defining the composition of the character.
void * get() const noexcept
virtual QFixed descent() const
virtual int getPointInOutline(glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints)
virtual FaceId faceId() const
virtual QFixed ascent() const
struct QFontEngine::FaceData faceData
virtual void doKerning(QGlyphLayout *, ShaperFlags) const
virtual glyph_t glyphIndex(uint ucs4) const =0
virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs)
virtual void recalcAdvances(QGlyphLayout *, ShaperFlags) const
virtual QFixed leading() const
virtual QFixed emSquareSize() const
char32_t next(char32_t invalidAs=QChar::ReplacementCharacter)
\macro QT_RESTRICTED_CAST_FROM_ASCII
QString normalized(NormalizationForm mode, QChar::UnicodeVersion version=QChar::Unicode_Unassigned) const
Returns the string in the given Unicode normalization mode, according to the given version of the Uni...
static VulkanServerBufferGlFunctions * funcs
QSet< QString >::iterator it
Combined button and popup list for selecting options.
AudioChannelLayoutTag tag
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void * user_data
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
bool(* qt_get_font_table_func_t)(void *user_data, uint tag, uchar *buffer, uint *length)
#define Q_GLOBAL_STATIC(TYPE, NAME,...)
static hb_codepoint_t _hb_qt_unicode_mirroring(hb_unicode_funcs_t *, hb_codepoint_t unicode, void *)
static hb_unicode_combining_class_t _hb_qt_unicode_combining_class(hb_unicode_funcs_t *, hb_codepoint_t unicode, void *)
static hb_position_t _hb_qt_font_get_glyph_h_advance(hb_font_t *font, void *font_data, hb_codepoint_t glyph, void *)
static hb_position_t _hb_qt_font_get_glyph_h_kerning(hb_font_t *font, void *font_data, hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, void *)
uint hb_qt_font_get_use_design_metrics(hb_font_t *font)
static void _hb_qt_font_release(void *user_data)
static hb_user_data_key_t _useDesignMetricsKey
static void _hb_qt_face_release(void *user_data)
static hb_unicode_general_category_t _hb_qt_unicode_general_category(hb_unicode_funcs_t *, hb_codepoint_t unicode, void *)
static QT_BEGIN_NAMESPACE const hb_script_t _qtscript_to_hbscript[]
static hb_bool_t _hb_qt_font_get_glyph_contour_point(hb_font_t *, void *font_data, hb_codepoint_t glyph, unsigned int point_index, hb_position_t *x, hb_position_t *y, void *)
static hb_bool_t _hb_qt_get_font_h_extents(hb_font_t *, void *font_data, hb_font_extents_t *metrics, void *)
static hb_bool_t _hb_qt_font_get_nominal_glyph(hb_font_t *, void *font_data, hb_codepoint_t unicode, hb_codepoint_t *glyph, void *)
static hb_bool_t _hb_qt_unicode_compose(hb_unicode_funcs_t *, hb_codepoint_t a, hb_codepoint_t b, hb_codepoint_t *ab, void *)
static hb_blob_t * _hb_qt_reference_table(hb_face_t *, hb_tag_t tag, void *user_data)
hb_unicode_funcs_t * hb_qt_get_unicode_funcs()
QChar::Script hb_qt_script_from_script(hb_script_t script)
static hb_bool_t _hb_qt_font_get_variation_glyph(hb_font_t *, void *font_data, hb_codepoint_t unicode, hb_codepoint_t, hb_codepoint_t *glyph, void *)
static hb_script_t _hb_qt_unicode_script(hb_unicode_funcs_t *, hb_codepoint_t unicode, void *)
static const hb_unicode_general_category_t _qtcategory_to_hbcategory[]
hb_script_t hb_qt_script_to_script(QChar::Script script)
static hb_face_t * _hb_qt_face_create(QFontEngine *fe)
hb_font_t * hb_qt_font_get_for_engine(QFontEngine *fe)
void hb_qt_font_set_use_design_metrics(hb_font_t *font, uint value)
static hb_bool_t _hb_qt_unicode_decompose(hb_unicode_funcs_t *, hb_codepoint_t ab, hb_codepoint_t *a, hb_codepoint_t *b, void *)
hb_face_t * hb_qt_face_get_for_engine(QFontEngine *fe)
static hb_font_t * _hb_qt_font_create(QFontEngine *fe)
static hb_bool_t _hb_qt_font_get_glyph_extents(hb_font_t *, void *font_data, hb_codepoint_t glyph, hb_glyph_extents_t *extents, void *)
struct hb_face_t hb_face_t
struct hb_font_t hb_font_t
GLboolean GLboolean GLboolean b
GLint GLint GLint GLint GLint x
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
GLenum GLuint GLenum GLsizei length
GLsizei GLenum const void GLuint GLsizei GLfloat * metrics
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLenum GLboolean normalized
Q_CHECK_PTR(a=new int[80])
static constexpr QFixed fromReal(qreal r)
constexpr int value() const
constexpr int truncate() const
qt_get_font_table_func_t get_font_table
hb_unicode_funcs_t * funcs