mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-04 11:47:59 +02:00
[cairo-scaled-font] Implement _cairo_scaled_font_get_max_scale()
This commit is contained in:
parent
479936ecea
commit
1b5e2144fb
3 changed files with 14 additions and 0 deletions
|
|
@ -94,6 +94,7 @@ struct _cairo_scaled_font {
|
|||
/* "live" scaled_font members */
|
||||
cairo_matrix_t scale; /* font space => device space */
|
||||
cairo_matrix_t scale_inverse; /* device space => font space */
|
||||
double max_scale; /* maximum x/y expansion of scale */
|
||||
cairo_font_extents_t extents; /* user space */
|
||||
|
||||
/* The mutex protects modification to all subsequent fields. */
|
||||
|
|
|
|||
|
|
@ -195,6 +195,7 @@ static const cairo_scaled_font_t _cairo_scaled_font_nil = {
|
|||
TRUE, /* finished */
|
||||
{ 1., 0., 0., 1., 0, 0}, /* scale */
|
||||
{ 1., 0., 0., 1., 0, 0}, /* scale_inverse */
|
||||
1., /* max_scale */
|
||||
{ 0., 0., 0., 0., 0. }, /* extents */
|
||||
CAIRO_MUTEX_NIL_INITIALIZER,/* mutex */
|
||||
NULL, /* glyphs */
|
||||
|
|
@ -480,6 +481,8 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font,
|
|||
&scaled_font->font_matrix,
|
||||
&scaled_font->ctm);
|
||||
|
||||
scaled_font->max_scale = MAX (fabs (scaled_font->scale.xx) + fabs (scaled_font->scale.xy),
|
||||
fabs (scaled_font->scale.yx) + fabs (scaled_font->scale.yy));
|
||||
scaled_font->scale_inverse = scaled_font->scale;
|
||||
status = cairo_matrix_invert (&scaled_font->scale_inverse);
|
||||
if (status) {
|
||||
|
|
@ -1906,6 +1909,13 @@ _cairo_scaled_glyph_lookup (cairo_scaled_font_t *scaled_font,
|
|||
return status;
|
||||
}
|
||||
|
||||
double
|
||||
_cairo_scaled_font_get_max_scale (cairo_scaled_font_t *scaled_font)
|
||||
{
|
||||
return scaled_font->max_scale;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* cairo_scaled_font_get_font_face:
|
||||
* @scaled_font: a #cairo_scaled_font_t
|
||||
|
|
|
|||
|
|
@ -1551,6 +1551,9 @@ _cairo_scaled_glyph_lookup (cairo_scaled_font_t *scaled_font,
|
|||
cairo_scaled_glyph_info_t info,
|
||||
cairo_scaled_glyph_t **scaled_glyph_ret);
|
||||
|
||||
cairo_private double
|
||||
_cairo_scaled_font_get_max_scale (cairo_scaled_font_t *scaled_font);
|
||||
|
||||
cairo_private void
|
||||
_cairo_scaled_font_map_destroy (void);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue