[helper-cairo] Remove a method
This commit is contained in:
parent
f2a6643fc1
commit
74d29cd168
|
@ -573,50 +573,46 @@ helper_cairo_destroy_context (cairo_t *cr)
|
||||||
|
|
||||||
|
|
||||||
struct helper_cairo_line_t {
|
struct helper_cairo_line_t {
|
||||||
cairo_glyph_t *glyphs;
|
cairo_glyph_t *glyphs = nullptr;
|
||||||
unsigned int num_glyphs;
|
unsigned int num_glyphs = 0;
|
||||||
char *utf8;
|
char *utf8 = nullptr;
|
||||||
unsigned int utf8_len;
|
unsigned int utf8_len = 0;
|
||||||
cairo_text_cluster_t *clusters;
|
cairo_text_cluster_t *clusters = nullptr;
|
||||||
unsigned int num_clusters;
|
unsigned int num_clusters = 0;
|
||||||
cairo_text_cluster_flags_t cluster_flags;
|
cairo_text_cluster_flags_t cluster_flags = (cairo_text_cluster_flags_t) 0;
|
||||||
|
|
||||||
void finish () {
|
helper_cairo_line_t (const char *utf8_,
|
||||||
|
unsigned utf8_len_,
|
||||||
|
hb_buffer_t *buffer,
|
||||||
|
hb_bool_t utf8_clusters,
|
||||||
|
int scale_bits) :
|
||||||
|
utf8 (utf8_ ? g_strndup (utf8_, utf8_len_) : nullptr),
|
||||||
|
utf8_len (utf8_len_)
|
||||||
|
{
|
||||||
|
hb_cairo_glyphs_from_buffer (buffer,
|
||||||
|
utf8_clusters,
|
||||||
|
1 << -scale_bits, 1 << -scale_bits,
|
||||||
|
0., 0.,
|
||||||
|
utf8, utf8_len,
|
||||||
|
&glyphs, &num_glyphs,
|
||||||
|
&clusters, &num_clusters,
|
||||||
|
&cluster_flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
void finish ()
|
||||||
|
{
|
||||||
if (glyphs)
|
if (glyphs)
|
||||||
cairo_glyph_free (glyphs);
|
cairo_glyph_free (glyphs);
|
||||||
if (clusters)
|
if (clusters)
|
||||||
cairo_text_cluster_free (clusters);
|
cairo_text_cluster_free (clusters);
|
||||||
if (utf8)
|
g_free (utf8);
|
||||||
g_free (utf8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_advance (double *x_advance, double *y_advance) {
|
void get_advance (double *x_advance, double *y_advance)
|
||||||
|
{
|
||||||
*x_advance = glyphs[num_glyphs].x;
|
*x_advance = glyphs[num_glyphs].x;
|
||||||
*y_advance = glyphs[num_glyphs].y;
|
*y_advance = glyphs[num_glyphs].y;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void
|
|
||||||
helper_cairo_line_from_buffer (helper_cairo_line_t *l,
|
|
||||||
hb_buffer_t *buffer,
|
|
||||||
const char *text,
|
|
||||||
unsigned int text_len,
|
|
||||||
int scale_bits,
|
|
||||||
hb_bool_t utf8_clusters)
|
|
||||||
{
|
|
||||||
memset (l, 0, sizeof (*l));
|
|
||||||
|
|
||||||
l->utf8 = text ? g_strndup (text, text_len) : nullptr;
|
|
||||||
l->utf8_len = text ? text_len : 0;
|
|
||||||
|
|
||||||
hb_cairo_glyphs_from_buffer (buffer,
|
|
||||||
utf8_clusters,
|
|
||||||
1 << -scale_bits, 1 << -scale_bits,
|
|
||||||
0., 0.,
|
|
||||||
l->utf8, l->utf8_len,
|
|
||||||
&l->glyphs, &l->num_glyphs,
|
|
||||||
&l->clusters, &l->num_clusters,
|
|
||||||
&l->cluster_flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -63,8 +63,7 @@ struct view_cairo_t : view_options_t, output_options_t<>
|
||||||
hb_bool_t utf8_clusters)
|
hb_bool_t utf8_clusters)
|
||||||
{
|
{
|
||||||
direction = hb_buffer_get_direction (buffer);
|
direction = hb_buffer_get_direction (buffer);
|
||||||
helper_cairo_line_t l;
|
helper_cairo_line_t l (text, text_len, buffer, utf8_clusters, scale_bits);
|
||||||
helper_cairo_line_from_buffer (&l, buffer, text, text_len, scale_bits, utf8_clusters);
|
|
||||||
g_array_append_val (lines, l);
|
g_array_append_val (lines, l);
|
||||||
}
|
}
|
||||||
void finish (hb_buffer_t *buffer, const font_options_t *font_opts)
|
void finish (hb_buffer_t *buffer, const font_options_t *font_opts)
|
||||||
|
|
Loading…
Reference in New Issue