[pango/line-breaker] Bring back some PangoRenderer api



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]