Code

filterUnits and primitiveUnits are now actually read/set, percentages for primitiveUn...
[inkscape.git] / src / display / nr-filter.cpp
index 3ca2b0dbaedd0ba2a13930359a9f341978784c7c..3b19ff69ba6f996ac0a91e2b34183f876be8c50b 100644 (file)
@@ -168,6 +168,8 @@ int Filter::render(NRArenaItem const *item, NRPixBlock *pb)
     // TODO: with filterRes of 0x0 should return an empty image
     std::pair<double,double> resolution
         = _filter_resolution(filter_area, trans, filterquality);
+    if(!(resolution.first > 0 && resolution.second > 0))
+       return 1;
     units.set_resolution(resolution.first, resolution.second);
     if (_x_pixels > 0) {
         units.set_automatic_resolution(false);
@@ -221,6 +223,14 @@ int Filter::render(NRArenaItem const *item, NRPixBlock *pb)
     return 0;
 }
 
+void Filter::set_filter_units(SPFilterUnits unit) {
+    _filter_units = unit;
+}
+
+void Filter::set_primitive_units(SPFilterUnits unit) {
+    _primitive_units = unit;
+}
+
 void Filter::area_enlarge(NRRectL &bbox, NRArenaItem const *item) const {
     for (int i = 0 ; i < _primitive_count ; i++) {
         if (_primitive[i]) _primitive[i]->area_enlarge(bbox, item->ctm);