diff libinterp/corefcn/text-renderer.cc @ 29483:af41ebf3d1b3

Differ latex test until actually needed (bug #59546) * base-text-renderer.h (ok): New virtuel method. * latex-text-renderer.cc (m_testing): New bool attribute to store wether the renderer still needs to be tested. (is_usable): Remove method. (ok): Reimplement method. (warn_helper): Now a member function with less arguments. Change use cases. Don't warn while testing unless debug is requested. (make_latex_text_renderer): Return an object without testing. * text-renderer.cc (latex_ok): Remove method. (set_color, set_font): Don't check the latex renderer is functionnal. (text_to_strlist,text_to_pixels, get_extent): Use the latex_renderer.ok () method to test when needed.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Thu, 01 Apr 2021 23:18:50 +0200
parents 2ae4764180c6
children f148aff802b6
line wrap: on
line diff
--- a/libinterp/corefcn/text-renderer.cc	Fri Apr 02 01:32:39 2021 -0400
+++ b/libinterp/corefcn/text-renderer.cc	Thu Apr 01 23:18:50 2021 +0200
@@ -32,7 +32,6 @@
 #include "errwarn.h"
 #include "ft-text-renderer.h"
 #include "latex-text-renderer.h"
-#include "oct-env.h"
 #include "text-renderer.h"
 
 namespace octave
@@ -66,22 +65,6 @@
     return rep != nullptr;
   }
 
-  bool
-  text_renderer::latex_ok (void) const
-  {
-    static bool warned = false;
-
-    if (! sys::env::getenv ("OCTAVE_LATEX_DEBUG_FLAG").empty ()
-        && ! latex_rep && ! warned)
-      {
-        warning_with_id ("Octave:LaTeX:internal-error",
-                         "latex_renderer: unusable latex tool-chain");
-        warned = true;
-      }
-
-    return latex_rep != nullptr;
-  }
-
   Matrix
   text_renderer::get_extent (text_element *elt, double rotation)
   {
@@ -96,7 +79,7 @@
   {
     static Matrix retval (1, 4, 0.0);
 
-    if (interpreter == "latex" && latex_ok ())
+    if (interpreter == "latex" && latex_rep->ok ())
       retval = latex_rep->get_extent (txt, rotation, interpreter);
     else if (ok ())
       retval = rep->get_extent (txt, rotation, interpreter);
@@ -109,9 +92,6 @@
   {
     if (ok ())
       rep->set_anti_aliasing (val);
-
-    if (latex_ok ())
-      latex_rep->set_anti_aliasing (val);
   }
 
   octave_map
@@ -130,20 +110,20 @@
                            const std::string& angle, double size)
   {
     if (ok ())
-      rep->set_font (name, weight, angle, size);
-
-    if (latex_ok ())
-      latex_rep->set_font (name, weight, angle, size);
+      {
+        rep->set_font (name, weight, angle, size);
+        latex_rep->set_font (name, weight, angle, size);
+      }
   }
 
   void
   text_renderer::set_color (const Matrix& c)
   {
     if (ok ())
-      rep->set_color (c);
-
-    if (latex_ok ())
-      latex_rep->set_color (c);
+      {
+        rep->set_color (c);
+        latex_rep->set_color (c);
+      }
   }
 
   void
@@ -156,7 +136,7 @@
     static Matrix empty_bbox (1, 4, 0.0);
     static uint8NDArray empty_pxls;
 
-    if (interpreter == "latex" && latex_ok ())
+    if (interpreter == "latex" && latex_rep->ok ())
       latex_rep->text_to_pixels (txt, pxls, bbox, halign, valign, rotation,
                                  interpreter, handle_rotation);
     else if (ok ())
@@ -179,7 +159,7 @@
     static Matrix empty_bbox (1, 4, 0.0);
     static std::list<text_renderer::string> empty_lst;
 
-    if (interpreter == "latex" && latex_ok ())
+    if (interpreter == "latex" && latex_rep->ok ())
       latex_rep->text_to_strlist (txt, lst, bbox, halign, valign, rotation,
                                   interpreter);
     else if (ok ())