summaryrefslogtreecommitdiff
path: root/pango/pango-font-private.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-08-27 20:51:06 -0400
committerMatthias Clasen <mclasen@redhat.com>2022-08-27 20:51:06 -0400
commit17f2d869f876ea10262ff6841b29fe86463a0d70 (patch)
treea83aa1509a02e8e62b1e3bdae7766e35d717ddd3 /pango/pango-font-private.h
parent94b7c4ae13e3b71ffc283db1989389f22bd66446 (diff)
downloadpango-17f2d869f876ea10262ff6841b29fe86463a0d70.tar.gz
font: Add private api to get the variant
Add a private pango_font_get_variant, and implement it for PangoFcFont. This will let us avoid many pointless font description copies.
Diffstat (limited to 'pango/pango-font-private.h')
-rw-r--r--pango/pango-font-private.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/pango/pango-font-private.h b/pango/pango-font-private.h
index 885e38c1..e95abc7a 100644
--- a/pango/pango-font-private.h
+++ b/pango/pango-font-private.h
@@ -48,6 +48,7 @@ typedef struct {
void (* get_matrix) (PangoFont *font,
PangoMatrix *matrix);
int (* get_absolute_size) (PangoFont *font);
+ PangoVariant (* get_variant) (PangoFont *font);
} PangoFontClassPrivate;
gboolean pango_font_is_hinted (PangoFont *font);
@@ -56,6 +57,7 @@ void pango_font_get_scale_factors (PangoFont *font,
double *y_scale);
void pango_font_get_matrix (PangoFont *font,
PangoMatrix *matrix);
+
static inline int pango_font_get_absolute_size (PangoFont *font)
{
GTypeClass *klass = (GTypeClass *) PANGO_FONT_GET_CLASS (font);
@@ -63,6 +65,26 @@ static inline int pango_font_get_absolute_size (PangoFont *font)
return priv->get_absolute_size (font);
}
+static inline PangoVariant
+pango_font_get_variant (PangoFont *font)
+{
+ GTypeClass *klass = (GTypeClass *) PANGO_FONT_GET_CLASS (font);
+ PangoFontClassPrivate *priv = g_type_class_get_private (klass, PANGO_TYPE_FONT);
+ if (priv->get_variant)
+ return priv->get_variant (font);
+ else
+ {
+ PangoFontDescription *desc;
+ PangoVariant variant;
+
+ desc = pango_font_describe (font);
+ variant = pango_font_description_get_variant (desc);
+ pango_font_description_free (desc);
+
+ return variant;
+ }
+}
+
G_END_DECLS
#endif /* __PANGO_FONT_PRIVATE_H__ */