diff options
Diffstat (limited to 'src/display/drawing-image.cpp')
| -rw-r--r-- | src/display/drawing-image.cpp | 27 |
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; } } |
