summaryrefslogtreecommitdiffstats
path: root/src/display/drawing-image.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/display/drawing-image.cpp')
-rw-r--r--src/display/drawing-image.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/display/drawing-image.cpp b/src/display/drawing-image.cpp
index fb1342edf..0ac716dfb 100644
--- a/src/display/drawing-image.cpp
+++ b/src/display/drawing-image.cpp
@@ -116,26 +116,25 @@ unsigned DrawingImage::_renderItem(DrawingContext &dc, Geom::IntRect const &/*ar
if (_style) {
// See: http://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty
- // http://www.w3.org/TR/css4-images/#the-image-rendering
- // It's back in CSS Images 3 now.
- // style.h/style.cpp
+ // https://drafts.csswg.org/css-images-3/#the-image-rendering
+ // style.h/style.cpp, cairo-render-context.cpp
+ //
+ // CSS 3 defines:
+ // 'optimizeSpeed' as alias for "pixelated"
+ // 'optimizeQuality' as alias for "smooth"
switch (_style->image_rendering.computed) {
+ case SP_CSS_IMAGE_RENDERING_OPTIMIZESPEED:
+ case SP_CSS_IMAGE_RENDERING_PIXELATED:
+ // we don't have an implementation for crisp-edges, but it should *not* smooth or blur
+ case SP_CSS_IMAGE_RENDERING_CRISPEDGES:
+ dc.patternSetFilter( CAIRO_FILTER_NEAREST );
+ break;
case SP_CSS_IMAGE_RENDERING_AUTO:
case SP_CSS_IMAGE_RENDERING_OPTIMIZEQUALITY:
- case SP_CSS_IMAGE_RENDERING_CRISPEDGES:
- // CSS 3 defines:
- // 'auto' to use smoothing
- // 'optimize-quality' as alias for auto
- // We don't have special rendering for 'crisp-edges' yet
- // so follow what browsers do.
+ default:
// In recent Cairo, BEST used Lanczos3, which is prohibitively slow
dc.patternSetFilter( CAIRO_FILTER_GOOD );
break;
- case SP_CSS_IMAGE_RENDERING_OPTIMIZESPEED:
- case SP_CSS_IMAGE_RENDERING_PIXELATED:
- default:
- dc.patternSetFilter( CAIRO_FILTER_NEAREST );
- break;
}
}