Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qharfbuzzng.cpp File Reference
#include "qharfbuzzng_p.h"
#include <qstring.h>
#include <private/qstringiterator_p.h>
#include "qfontengine_p.h"
+ Include dependency graph for qharfbuzzng.cpp:

Go to the source code of this file.

Classes

struct  _hb_unicode_funcs_t
 
struct  _hb_qt_font_funcs_t
 

Functions

hb_script_t hb_qt_script_to_script (QChar::Script script)
 
QChar::Script hb_qt_script_from_script (hb_script_t script)
 
static hb_unicode_combining_class_t _hb_qt_unicode_combining_class (hb_unicode_funcs_t *, hb_codepoint_t unicode, void *)
 
static hb_unicode_general_category_t _hb_qt_unicode_general_category (hb_unicode_funcs_t *, hb_codepoint_t unicode, void *)
 
static hb_codepoint_t _hb_qt_unicode_mirroring (hb_unicode_funcs_t *, hb_codepoint_t unicode, void *)
 
static hb_script_t _hb_qt_unicode_script (hb_unicode_funcs_t *, hb_codepoint_t unicode, 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_bool_t _hb_qt_unicode_decompose (hb_unicode_funcs_t *, hb_codepoint_t ab, hb_codepoint_t *a, hb_codepoint_t *b, void *)
 
hb_unicode_funcs_t * hb_qt_get_unicode_funcs ()
 
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_font_get_variation_glyph (hb_font_t *, void *font_data, hb_codepoint_t unicode, hb_codepoint_t, hb_codepoint_t *glyph, 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 *)
 
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 *)
 
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 *)
 
void hb_qt_font_set_use_design_metrics (hb_font_t *font, uint value)
 
uint hb_qt_font_get_use_design_metrics (hb_font_t *font)
 
static hb_blob_t * _hb_qt_reference_table (hb_face_t *, hb_tag_t tag, void *user_data)
 
static hb_face_t_hb_qt_face_create (QFontEngine *fe)
 
static void _hb_qt_face_release (void *user_data)
 
hb_face_thb_qt_face_get_for_engine (QFontEngine *fe)
 
static hb_font_t_hb_qt_font_create (QFontEngine *fe)
 
static void _hb_qt_font_release (void *user_data)
 
hb_font_thb_qt_font_get_for_engine (QFontEngine *fe)
 

Variables

static QT_BEGIN_NAMESPACE const hb_script_t _qtscript_to_hbscript []
 
static const hb_unicode_general_category_t _qtcategory_to_hbcategory []
 
static hb_user_data_key_t _useDesignMetricsKey
 

Function Documentation

◆ _hb_qt_face_create()

static hb_face_t * _hb_qt_face_create ( QFontEngine fe)
inlinestatic

Definition at line 617 of file qharfbuzzng.cpp.

References _hb_qt_reference_table(), QFontEngine::emSquareSize(), QFontEngine::faceData, QFontEngine::faceId(), QFontEngine::FaceData::get_font_table, QFontEngine::FaceId::index, Q_CHECK_PTR(), QFixed::truncate(), and QFontEngine::FaceData::user_data.

Referenced by hb_qt_face_get_for_engine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_face_release()

static void _hb_qt_face_release ( void user_data)
static

Definition at line 633 of file qharfbuzzng.cpp.

References user_data.

Referenced by hb_qt_face_get_for_engine().

+ Here is the caller graph for this function:

◆ _hb_qt_font_create()

static hb_font_t * _hb_qt_font_create ( QFontEngine fe)
inlinestatic

Definition at line 650 of file qharfbuzzng.cpp.

References font, QFontEngine::fontDef, QFixed::fromReal(), funcs, hb_qt_face_get_for_engine(), QFontDef::pixelSize, QFontDef::pointSize, and QFontDef::stretch.

Referenced by hb_qt_font_get_for_engine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_font_get_glyph_contour_point()

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

Definition at line 531 of file qharfbuzzng.cpp.

References QFontEngine::getPointInOutline(), Q_ASSERT, Q_LIKELY, and QFixed::value().

Referenced by _hb_qt_font_funcs_t::_hb_qt_font_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_font_get_glyph_extents()

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  
)
static

Definition at line 512 of file qharfbuzzng.cpp.

References QFontEngine::boundingBox(), glyph_metrics_t::height, Q_ASSERT, QFixed::value(), glyph_metrics_t::width, glyph_metrics_t::x, and glyph_metrics_t::y.

Referenced by _hb_qt_font_funcs_t::_hb_qt_font_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_font_get_glyph_h_advance()

static hb_position_t _hb_qt_font_get_glyph_h_advance ( hb_font_t font,
void font_data,
hb_codepoint_t  glyph,
void  
)
static

Definition at line 471 of file qharfbuzzng.cpp.

References font, hb_qt_font_get_use_design_metrics(), Q_ASSERT, QFontEngine::recalcAdvances(), and QFixed::value().

Referenced by _hb_qt_font_funcs_t::_hb_qt_font_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_font_get_glyph_h_kerning()

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  
)
static

Definition at line 491 of file qharfbuzzng.cpp.

References QFontEngine::doKerning(), font, hb_qt_font_get_use_design_metrics(), Q_ASSERT, and QFixed::value().

Referenced by _hb_qt_font_funcs_t::_hb_qt_font_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_font_get_nominal_glyph()

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

Definition at line 442 of file qharfbuzzng.cpp.

References QFontEngine::glyphIndex(), and Q_ASSERT.

Referenced by _hb_qt_font_funcs_t::_hb_qt_font_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_font_get_variation_glyph()

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

Definition at line 456 of file qharfbuzzng.cpp.

References QFontEngine::glyphIndex(), and Q_ASSERT.

Referenced by _hb_qt_font_funcs_t::_hb_qt_font_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_font_release()

static void _hb_qt_font_release ( void user_data)
static

Definition at line 669 of file qharfbuzzng.cpp.

References user_data.

Referenced by hb_qt_font_get_for_engine().

+ Here is the caller graph for this function:

◆ _hb_qt_get_font_h_extents()

static hb_bool_t _hb_qt_get_font_h_extents ( hb_font_t ,
void font_data,
hb_font_extents_t *  metrics,
void  
)
static

Definition at line 427 of file qharfbuzzng.cpp.

References QFontEngine::ascent(), QFontEngine::descent(), QFontEngine::leading(), Q_ASSERT, and QFixed::value().

Referenced by _hb_qt_font_funcs_t::_hb_qt_font_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_reference_table()

static hb_blob_t * _hb_qt_reference_table ( hb_face_t ,
hb_tag_t  tag,
void user_data 
)
static

Definition at line 592 of file qharfbuzzng.cpp.

References Q_ASSERT, Q_UNLIKELY, tag, and user_data.

Referenced by _hb_qt_face_create().

+ Here is the caller graph for this function:

◆ _hb_qt_unicode_combining_class()

static hb_unicode_combining_class_t _hb_qt_unicode_combining_class ( hb_unicode_funcs_t *  ,
hb_codepoint_t  unicode,
void  
)
static

Definition at line 251 of file qharfbuzzng.cpp.

References QChar::combiningClass().

Referenced by _hb_unicode_funcs_t::_hb_unicode_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_unicode_compose()

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

Definition at line 322 of file qharfbuzzng.cpp.

References QChar::fromUcs4(), it, QString::NormalizationForm_C, QString::normalized(), and Q_ASSERT.

Referenced by _hb_unicode_funcs_t::_hb_unicode_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_unicode_decompose()

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  
)
static

Definition at line 342 of file qharfbuzzng.cpp.

References QChar::Canonical, QChar::decomposition(), QChar::decompositionTag(), QStringIterator::hasNext(), it, QStringIterator::next(), QString::NormalizationForm_C, QString::normalized(), Q_ASSERT, and QChar::requiresSurrogates().

Referenced by _hb_unicode_funcs_t::_hb_unicode_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_unicode_general_category()

static hb_unicode_general_category_t _hb_qt_unicode_general_category ( hb_unicode_funcs_t *  ,
hb_codepoint_t  unicode,
void  
)
static

Definition at line 298 of file qharfbuzzng.cpp.

References _qtcategory_to_hbcategory, and QChar::category().

Referenced by _hb_unicode_funcs_t::_hb_unicode_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_unicode_mirroring()

static hb_codepoint_t _hb_qt_unicode_mirroring ( hb_unicode_funcs_t *  ,
hb_codepoint_t  unicode,
void  
)
static

Definition at line 306 of file qharfbuzzng.cpp.

References QChar::mirroredChar().

Referenced by _hb_unicode_funcs_t::_hb_unicode_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _hb_qt_unicode_script()

static hb_script_t _hb_qt_unicode_script ( hb_unicode_funcs_t *  ,
hb_codepoint_t  unicode,
void  
)
static

Definition at line 314 of file qharfbuzzng.cpp.

References _qtscript_to_hbscript, and QChar::script().

Referenced by _hb_unicode_funcs_t::_hb_unicode_funcs_t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hb_qt_face_get_for_engine()

hb_face_t * hb_qt_face_get_for_engine ( QFontEngine fe)

Definition at line 638 of file qharfbuzzng.cpp.

References _hb_qt_face_create(), _hb_qt_face_release(), QFontEngine::face_, QFontEngine::Holder::get(), QFontEngine::Multi, Q_ASSERT, Q_UNLIKELY, and QFontEngine::type().

Referenced by _hb_qt_font_create(), QFontEngine::harfbuzzFace(), and QFontEngine::supportsScript().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hb_qt_font_get_for_engine()

hb_font_t * hb_qt_font_get_for_engine ( QFontEngine fe)

Definition at line 674 of file qharfbuzzng.cpp.

References _hb_qt_font_create(), _hb_qt_font_release(), QFontEngine::font_, QFontEngine::Holder::get(), QFontEngine::Multi, Q_ASSERT, Q_UNLIKELY, and QFontEngine::type().

Referenced by QFontEngine::harfbuzzFont().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hb_qt_font_get_use_design_metrics()

uint hb_qt_font_get_use_design_metrics ( hb_font_t font)

Definition at line 559 of file qharfbuzzng.cpp.

References _useDesignMetricsKey, and font.

Referenced by _hb_qt_font_get_glyph_h_advance(), and _hb_qt_font_get_glyph_h_kerning().

+ Here is the caller graph for this function:

◆ hb_qt_font_set_use_design_metrics()

void hb_qt_font_set_use_design_metrics ( hb_font_t font,
uint  value 
)

Definition at line 554 of file qharfbuzzng.cpp.

References _useDesignMetricsKey, and font.

◆ hb_qt_get_unicode_funcs()

hb_unicode_funcs_t * hb_qt_get_unicode_funcs ( )

Definition at line 418 of file qharfbuzzng.cpp.

◆ hb_qt_script_from_script()

QChar::Script hb_qt_script_from_script ( hb_script_t  script)

Definition at line 241 of file qharfbuzzng.cpp.

References _qtscript_to_hbscript, i, QChar::Script_Unknown, and QChar::ScriptCount.

◆ hb_qt_script_to_script()

hb_script_t hb_qt_script_to_script ( QChar::Script  script)

Definition at line 236 of file qharfbuzzng.cpp.

References _qtscript_to_hbscript.

Referenced by QFontEngine::supportsScript().

+ Here is the caller graph for this function:

Variable Documentation

◆ _qtcategory_to_hbcategory

const hb_unicode_general_category_t _qtcategory_to_hbcategory[]
static

Definition at line 258 of file qharfbuzzng.cpp.

Referenced by _hb_qt_unicode_general_category().

◆ _qtscript_to_hbscript

QT_BEGIN_NAMESPACE const hb_script_t _qtscript_to_hbscript[]
static

◆ _useDesignMetricsKey

hb_user_data_key_t _useDesignMetricsKey
static