[pango/line-breaker] Bring back some PangoRenderer api
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/line-breaker] Bring back some PangoRenderer api
- Date: Sun, 23 Jan 2022 17:14:37 +0000 (UTC)
commit d17644466dcccadde043b63a4e69262287c6fabc
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jan 23 11:50:44 2022 -0500
Bring back some PangoRenderer api
pango/pango-renderer.c | 20 ++++++++++++++++++++
pango/pango-renderer.h | 6 ++++++
2 files changed, 26 insertions(+)
---
diff --git a/pango/pango-renderer.c b/pango/pango-renderer.c
index a8c59088..fdb4e623 100644
--- a/pango/pango-renderer.c
+++ b/pango/pango-renderer.c
@@ -57,6 +57,8 @@ struct _LineState
struct _PangoRendererPrivate
{
PangoContext *context;
+ PangoLines *lines;
+ PangoLayoutLine *line;
PangoColor color[N_RENDER_PARTS];
gboolean color_set[N_RENDER_PARTS];
@@ -533,6 +535,7 @@ pango_renderer_draw_layout_line (PangoRenderer *renderer,
pango_renderer_activate_with_context (renderer, line->context);
+ renderer->priv->line = line;
renderer->priv->line_state = &state;
state.underline = PANGO_UNDERLINE_NONE;
@@ -546,6 +549,7 @@ pango_renderer_draw_layout_line (PangoRenderer *renderer,
draw_overline (renderer, &state);
draw_strikethrough (renderer, &state);
+ renderer->priv->line = NULL;
renderer->priv->line_state = NULL;
pango_renderer_deactivate (renderer);
@@ -574,6 +578,8 @@ pango_renderer_draw_lines (PangoRenderer *renderer,
g_return_if_fail (PANGO_IS_RENDERER_FAST (renderer));
+ renderer->priv->lines = lines;
+
n = 0;
while ((line = pango_lines_get_line (lines, n, &line_x, &line_y)) != NULL)
{
@@ -585,6 +591,8 @@ pango_renderer_draw_lines (PangoRenderer *renderer,
n++;
}
+ renderer->priv->lines = NULL;
+
pango_renderer_deactivate (renderer);
}
@@ -1589,3 +1597,15 @@ pango_renderer_get_context (PangoRenderer *renderer)
{
return renderer->priv->context;
}
+
+PangoLines *
+pango_renderer_get_lines (PangoRenderer *renderer)
+{
+ return renderer->priv->lines;
+}
+
+PangoLayoutLine *
+pango_renderer_get_layout_line (PangoRenderer *renderer)
+{
+ return renderer->priv->line;
+}
diff --git a/pango/pango-renderer.h b/pango/pango-renderer.h
index 4d9f2672..1c37eef5 100644
--- a/pango/pango-renderer.h
+++ b/pango/pango-renderer.h
@@ -281,6 +281,12 @@ void pango_renderer_set_matrix (PangoRenderer *renderer,
PANGO_AVAILABLE_IN_1_8
const PangoMatrix *pango_renderer_get_matrix (PangoRenderer *renderer);
+PANGO_AVAILABLE_IN_ALL
+PangoLines * pango_renderer_get_lines (PangoRenderer *renderer);
+
+PANGO_AVAILABLE_IN_ALL
+PangoLayoutLine * pango_renderer_get_layout_line (PangoRenderer *renderer);
+
PANGO_AVAILABLE_IN_ALL
PangoContext * pango_renderer_get_context (PangoRenderer *renderer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]