index 3b9c051e20ca9dca95c126f90dacec89bc7a4de3..683c4f83d45fe859bf13c04a16dd19f9ea7f0c9f 100644 (file)
#include "display/nr-filter-offset.h"
#include "display/nr-filter-slot.h"
+#include "display/nr-filter-units.h"
#include "libnr/nr-blit.h"
#include "libnr/nr-matrix.h"
#include "libnr/nr-pixblock.h"
FilterOffset::~FilterOffset()
{}
-int FilterOffset::render(FilterSlot &slot, Matrix const &trans) {
+int FilterOffset::render(FilterSlot &slot, FilterUnits const &units) {
NRPixBlock *in = slot.get(_input);
+ // Bail out if source image is missing
+ if (!in) {
+ g_warning("Missing source image for feOffset (in=%d)", _input);
+ return 1;
+ }
+
NRPixBlock *out = new NRPixBlock;
+ Matrix trans = units.get_matrix_primitiveunits2pb();
Point offset(dx, dy);
offset *= trans;
offset[X] -= trans[4];