浏览代码

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 年之前
父节点
当前提交
187acd8f21
共有 1 个文件被更改,包括 10 次插入0 次删除
  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());