summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/cairo-renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/extension/internal/cairo-renderer.cpp')
-rw-r--r--src/extension/internal/cairo-renderer.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp
index 228154f04..22b2dd606 100644
--- a/src/extension/internal/cairo-renderer.cpp
+++ b/src/extension/internal/cairo-renderer.cpp
@@ -176,10 +176,6 @@ static void sp_shape_render (SPItem *item, CairoRenderContext *ctx)
NR::Matrix const i2d = sp_item_i2d_affine(item);
SPStyle* style = SP_OBJECT_STYLE (item);
- if(style->filter.set != 0) {
- sp_asbitmap_render(item, ctx);
- return;
- }
CairoRenderer *renderer = ctx->getRenderer();
NRBPath bp;
@@ -386,7 +382,11 @@ static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx)
double res;
/** @TODO reimplement the resolution stuff
*/
- res = PX_PER_IN;
+ res = ctx->getBitmapResolution();
+ if(res == 0) {
+ res = PX_PER_IN;
+ }
+
// The width and height of the bitmap in pixels
unsigned width = (unsigned) floor ((bbox.x1 - bbox.x0) * res / PX_PER_IN);
@@ -486,7 +486,7 @@ static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx)
static void sp_item_invoke_render(SPItem *item, CairoRenderContext *ctx)
{
SPStyle* style = SP_OBJECT_STYLE (item);
- if(style->filter.set != 0) {
+ if((ctx->getFilterToBitmap() == TRUE) && (style->filter.set != 0)) {
return sp_asbitmap_render(item, ctx);
}