summaryrefslogtreecommitdiffstats
path: root/src/display/pixblock-transform.cpp
diff options
context:
space:
mode:
authorFelipe Corr??a da Silva Sanches <juca@members.fsf.org>2008-02-23 04:27:03 +0000
committerjucablues <jucablues@users.sourceforge.net>2008-02-23 04:27:03 +0000
commit7f1194d336b4e8e784096451f90094a0ad9bd051 (patch)
treeeb5a24e32124e8972f9483eb09d85edd7fd32ee9 /src/display/pixblock-transform.cpp
parentsome more german (diff)
downloadinkscape-7f1194d336b4e8e784096451f90094a0ad9bd051.tar.gz
inkscape-7f1194d336b4e8e784096451f90094a0ad9bd051.zip
partial fix sent by jfb for bug #188814
(bzr r4829)
Diffstat (limited to 'src/display/pixblock-transform.cpp')
-rw-r--r--src/display/pixblock-transform.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/display/pixblock-transform.cpp b/src/display/pixblock-transform.cpp
index ab9d2e68b..abe0f90c0 100644
--- a/src/display/pixblock-transform.cpp
+++ b/src/display/pixblock-transform.cpp
@@ -21,6 +21,7 @@ using std::floor;
#include "display/nr-filter-utils.h"
+#include "libnr/nr-blit.h"
#include "libnr/nr-pixblock.h"
#include "libnr/nr-matrix.h"
@@ -148,6 +149,13 @@ void transform_bicubic(NRPixBlock *to, NRPixBlock *from, Matrix &trans)
return;
}
+ if (from->mode != to->mode){
+ NRPixBlock *o_from = from;
+ from = new NRPixBlock;
+ nr_pixblock_setup_fast(from, to->mode, o_from->area.x0, o_from->area.y0, o_from->area.x1, o_from->area.y1, false);
+ nr_blit_pixblock_pixblock(from, o_from);
+ }
+
// Precalculate sizes of source and destination pixblocks
int from_width = from->area.x1 - from->area.x0;
int from_height = from->area.y1 - from->area.y0;