Ver código fonte

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 anos atrás
pai
commit
187acd8f21
1 arquivos alterados com 10 adições e 0 exclusões
  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());