Browse Source

LibTTF: Do not assert on glyphs with broken line coordinates

Until we figure out what causes this problem or we can
fixup the coordinates we should simply not render this line.
Stephan Unverwerth 4 years ago
parent
commit
187acd8f21
1 changed files with 10 additions and 0 deletions
  1. 10 0
      Libraries/LibTTF/Glyf.cpp

+ 10 - 0
Libraries/LibTTF/Glyf.cpp

@@ -263,6 +263,16 @@ void Rasterizer::draw_line(Gfx::FloatPoint p0, Gfx::FloatPoint p1)
         p1.set_y(roundf(p1.y()));
     }
 
+    if (!(p0.x() >= 0.0 && p0.y() >= 0.0 && p0.x() <= m_size.width() && p0.y() <= m_size.height())) {
+        dbgln("!P0({},{})", p0.x(), p0.y());
+        return;
+    }
+
+    if (!(p1.x() >= 0.0 && p1.y() >= 0.0 && p1.x() <= m_size.width() && p1.y() <= m_size.height())) {
+        dbgln("!P1({},{})", p1.x(), p1.y());
+        return;
+    }
+
     ASSERT(p0.x() >= 0.0 && p0.y() >= 0.0 && p0.x() <= m_size.width() && p0.y() <= m_size.height());
     ASSERT(p1.x() >= 0.0 && p1.y() >= 0.0 && p1.x() <= m_size.width() && p1.y() <= m_size.height());