diff options
| author | Felipe Corr??a da Silva Sanches <juca@members.fsf.org> | 2007-07-27 03:07:02 +0000 |
|---|---|---|
| committer | jucablues <jucablues@users.sourceforge.net> | 2007-07-27 03:07:02 +0000 |
| commit | 6221b224f4ab88a3e224db46ead26608102e57fe (patch) | |
| tree | 240fd824d73ea99b1540f24cd046ef1fe7c38553 /src/display | |
| parent | Fix Bug 1653629 : we can know start inkscape without key file (diff) | |
| download | inkscape-6221b224f4ab88a3e224db46ead26608102e57fe.tar.gz inkscape-6221b224f4ab88a3e224db46ead26608102e57fe.zip | |
added helper methods NumberOptNumber::numIsSet() and
NumberOptNumber::optNumIsSet()
using it for default attribute values in feTubulence and
feConvolvematrix
feDisplacementMap scale parameter variable is a double
(bzr r3311)
Diffstat (limited to 'src/display')
| -rw-r--r-- | src/display/nr-filter-convolve-matrix.cpp | 6 | ||||
| -rw-r--r-- | src/display/nr-filter-displacement-map.cpp | 14 | ||||
| -rw-r--r-- | src/display/nr-filter-displacement-map.h | 4 |
3 files changed, 14 insertions, 10 deletions
diff --git a/src/display/nr-filter-convolve-matrix.cpp b/src/display/nr-filter-convolve-matrix.cpp index f8a00cb4b..9c9cf5f21 100644 --- a/src/display/nr-filter-convolve-matrix.cpp +++ b/src/display/nr-filter-convolve-matrix.cpp @@ -14,7 +14,11 @@ namespace NR { FilterConvolveMatrix::FilterConvolveMatrix() -: bias(0), +: orderX(3), + orderY(3), + targetX((int)(orderX/2)), + targetY((int)(orderY/2)), + bias(0), edgeMode(0), preserveAlpha(false) {} diff --git a/src/display/nr-filter-displacement-map.cpp b/src/display/nr-filter-displacement-map.cpp index 8d2e6dc3c..4b401bb33 100644 --- a/src/display/nr-filter-displacement-map.cpp +++ b/src/display/nr-filter-displacement-map.cpp @@ -59,8 +59,8 @@ int FilterDisplacementMap::render(FilterSlot &slot, Matrix const &trans) { y1 = out->area.y1; width = x1 - x0; - for (x=x0 + scale/2; x < x1 - scale/2; x++){ - for (y=y0 + scale/2; y < y1 - scale/2; y++){ + for (x=x0 + (int)(scale/2); x < x1 - (int)(scale/2); x++){ + for (y=y0 + (int)(scale/2); y < y1 - (int)(scale/2); y++){ /* SVG spec states that pixel values must be alpha-demultiplied before processing this filter operation. The following code does it, but when we DON'T do it, output is more similar to output from Batik. @@ -102,7 +102,7 @@ void FilterDisplacementMap::set_input(int slot) { _input = slot; } -void FilterDisplacementMap::set_scale(int s) { +void FilterDisplacementMap::set_scale(double s) { scale = s; } @@ -119,10 +119,10 @@ void FilterDisplacementMap::set_channel_selector(int s, int channel) { void FilterDisplacementMap::area_enlarge(NRRectL &area, Matrix const &trans) { //I'm in doubt whether this affects all input buffers or only 'in' - area.x0 -= scale/2; - area.y0 -= scale/2; - area.x1 += scale/2; - area.y1 += scale/2; + area.x0 -= (int)(scale/2); + area.y0 -= (int)(scale/2); + area.x1 += (int)(scale/2); + area.y1 += (int)(scale/2); } } /* namespace NR */ diff --git a/src/display/nr-filter-displacement-map.h b/src/display/nr-filter-displacement-map.h index 4b5c6ada5..fbe0d3064 100644 --- a/src/display/nr-filter-displacement-map.h +++ b/src/display/nr-filter-displacement-map.h @@ -27,13 +27,13 @@ public: virtual void set_input(int slot); virtual void set_input(int input, int slot); - virtual void set_scale(int s); + virtual void set_scale(double s); virtual void set_channel_selector(int channel, int s); virtual int render(FilterSlot &slot, Matrix const &trans); virtual void area_enlarge(NRRectL &area, Matrix const &trans); private: - int scale; + double scale; int _input2; int Xchannel; int Ychannel; |
