mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-10-31 22:25:25 -04:00
Use cairo_show_glyphs for rendering text
A small step for now.
This commit is contained in:
parent
01994a5964
commit
4f50670769
1 changed files with 12 additions and 9 deletions
|
|
@ -753,16 +753,13 @@ terminal_draw_contents(struct terminal *terminal)
|
|||
int top_margin, side_margin;
|
||||
int row, col;
|
||||
union utf8_char *p_row;
|
||||
struct utf8_chars {
|
||||
union utf8_char c;
|
||||
char null;
|
||||
} toShow;
|
||||
struct decoded_attr attr;
|
||||
int text_x, text_y;
|
||||
cairo_surface_t *surface;
|
||||
double d;
|
||||
|
||||
toShow.null = 0;
|
||||
int num_glyphs;
|
||||
cairo_scaled_font_t *font;
|
||||
cairo_glyph_t glyphs[256], *g;
|
||||
|
||||
window_get_child_allocation(terminal->window, &allocation);
|
||||
|
||||
|
|
@ -824,9 +821,15 @@ terminal_draw_contents(struct terminal *terminal)
|
|||
cairo_stroke(cr);
|
||||
}
|
||||
cairo_move_to(cr, text_x, text_y);
|
||||
|
||||
toShow.c = p_row[col];
|
||||
cairo_show_text(cr, (char *) toShow.c.byte);
|
||||
|
||||
g = glyphs;
|
||||
num_glyphs = ARRAY_LENGTH(glyphs);
|
||||
font = cairo_get_scaled_font (cr);
|
||||
cairo_scaled_font_text_to_glyphs (font, text_x, text_y,
|
||||
(char *) p_row[col].byte, 4,
|
||||
&g, &num_glyphs,
|
||||
NULL, NULL, NULL);
|
||||
cairo_show_glyphs (cr, g, num_glyphs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue