Code

Fixed a rendering problem in feOffset
authorkiirala <kiirala@users.sourceforge.net>
Wed, 13 Jun 2007 14:56:06 +0000 (14:56 +0000)
committerkiirala <kiirala@users.sourceforge.net>
Wed, 13 Jun 2007 14:56:06 +0000 (14:56 +0000)
src/display/nr-filter-offset.cpp

index ee6741d20aad10b8f2a313112d7ab489958a0529..3b9c051e20ca9dca95c126f90dacec89bc7a4de3 100644 (file)
@@ -72,10 +72,17 @@ void FilterOffset::area_enlarge(NRRectL &area, Matrix const &trans)
     offset[X] -= trans[4];
     offset[Y] -= trans[5];
 
-    area.x0 -= static_cast<NR::ICoord>(offset[X]);
-    area.x1 -= static_cast<NR::ICoord>(offset[X]);
-    area.y0 -= static_cast<NR::ICoord>(offset[Y]);
-    area.y1 -= static_cast<NR::ICoord>(offset[Y]);
+    if (offset[X] > 0) {
+        area.x0 -= static_cast<NR::ICoord>(offset[X]);
+    } else {
+        area.x1 -= static_cast<NR::ICoord>(offset[X]);
+    }
+
+    if (offset[Y] > 0) {
+        area.y0 -= static_cast<NR::ICoord>(offset[Y]);
+    } else {
+        area.y1 -= static_cast<NR::ICoord>(offset[Y]);
+    }
 }
 
 } /* namespace NR */