void GraphicsContext::drawImageBuffer(ImageBuffer* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, bool useLowQualityScale) { if (paintingDisabled() || !image) return; float tsw = src.width(); float tsh = src.height(); float tw = dest.width(); float th = dest.height(); if (tsw == -1) tsw = image->width(); if (tsh == -1) tsh = image->height(); if (tw == -1) tw = image->width(); if (th == -1) th = image->height(); if (useLowQualityScale) { InterpolationQuality previousInterpolationQuality = imageInterpolationQuality(); // FIXME: Should be InterpolationLow setImageInterpolationQuality(InterpolationNone); image->draw(this, styleColorSpace, FloatRect(dest.location(), FloatSize(tw, th)), FloatRect(src.location(), FloatSize(tsw, tsh)), op, useLowQualityScale); setImageInterpolationQuality(previousInterpolationQuality); } else image->draw(this, styleColorSpace, FloatRect(dest.location(), FloatSize(tw, th)), FloatRect(src.location(), FloatSize(tsw, tsh)), op, useLowQualityScale); }
void GraphicsContext::drawTiledImage(Image* image, ColorSpace styleColorSpace, const IntRect& rect, const IntPoint& srcPoint, const IntSize& tileSize, CompositeOperator op, bool useLowQualityScale) { if (paintingDisabled() || !image) return; if (useLowQualityScale) { InterpolationQuality previousInterpolationQuality = imageInterpolationQuality(); setImageInterpolationQuality(InterpolationLow); image->drawTiled(this, rect, srcPoint, tileSize, styleColorSpace, op); setImageInterpolationQuality(previousInterpolationQuality); } else image->drawTiled(this, rect, srcPoint, tileSize, styleColorSpace, op); }
void GraphicsContext::drawImageBuffer(ImageBuffer* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, BlendMode blendMode, bool useLowQualityScale) { if (paintingDisabled() || !image) return; if (useLowQualityScale) { InterpolationQuality previousInterpolationQuality = imageInterpolationQuality(); // FIXME (49002): Should be InterpolationLow setImageInterpolationQuality(InterpolationNone); image->draw(this, styleColorSpace, dest, src, op, blendMode, useLowQualityScale); setImageInterpolationQuality(previousInterpolationQuality); } else image->draw(this, styleColorSpace, dest, src, op, blendMode, useLowQualityScale); }
void GraphicsContext::drawImage(Image* image, const FloatRect& dest, const FloatRect& src, CompositeOperator op, bool useLowQualityScale) { if (paintingDisabled() || !image) return; float tsw = src.width(); float tsh = src.height(); float tw = dest.width(); float th = dest.height(); if (tsw == -1) tsw = image->width(); if (tsh == -1) tsh = image->height(); if (tw == -1) tw = image->width(); if (th == -1) th = image->height(); if (useLowQualityScale) { save(); setImageInterpolationQuality(InterpolationNone); } image->draw(this, FloatRect(dest.location(), FloatSize(tw, th)), FloatRect(src.location(), FloatSize(tsw, tsh)), op); if (useLowQualityScale) restore(); }
void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, BlendMode blendMode, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) { if (paintingDisabled() || !image) return; InterpolationQuality previousInterpolationQuality = InterpolationDefault; if (useLowQualityScale) { previousInterpolationQuality = imageInterpolationQuality(); // FIXME (49002): Should be InterpolationLow setImageInterpolationQuality(InterpolationNone); } image->draw(this, dest, src, styleColorSpace, op, blendMode, shouldRespectImageOrientation); if (useLowQualityScale) setImageInterpolationQuality(previousInterpolationQuality); }
void GraphicsContext::drawTiledImage(Image* image, ColorSpace styleColorSpace, const IntRect& dest, const IntRect& srcRect, Image::TileRule hRule, Image::TileRule vRule, CompositeOperator op, bool useLowQualityScale) { if (paintingDisabled() || !image) return; if (hRule == Image::StretchTile && vRule == Image::StretchTile) { // Just do a scale. drawImage(image, styleColorSpace, dest, srcRect, op); return; } if (useLowQualityScale) { InterpolationQuality previousInterpolationQuality = imageInterpolationQuality(); setImageInterpolationQuality(InterpolationLow); image->drawTiled(this, dest, srcRect, hRule, vRule, styleColorSpace, op); setImageInterpolationQuality(previousInterpolationQuality); } else image->drawTiled(this, dest, srcRect, hRule, vRule, styleColorSpace, op); }
void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) { if (paintingDisabled() || !image) return; float tsw = src.width(); float tsh = src.height(); float tw = dest.width(); float th = dest.height(); if (tsw == -1) tsw = image->width(); if (tsh == -1) tsh = image->height(); if (tw == -1) tw = image->width(); if (th == -1) th = image->height(); InterpolationQuality previousInterpolationQuality = InterpolationDefault; if (useLowQualityScale) { previousInterpolationQuality = imageInterpolationQuality(); #if PLATFORM(CHROMIUM) setImageInterpolationQuality(InterpolationLow); #else // FIXME (49002): Should be InterpolationLow setImageInterpolationQuality(InterpolationNone); #endif } if (image->isBitmapImage()) static_cast<BitmapImage*>(image)->draw(this, FloatRect(dest.location(), FloatSize(tw, th)), FloatRect(src.location(), FloatSize(tsw, tsh)), styleColorSpace, op, shouldRespectImageOrientation); else image->draw(this, FloatRect(dest.location(), FloatSize(tw, th)), FloatRect(src.location(), FloatSize(tsw, tsh)), styleColorSpace, op); if (useLowQualityScale) setImageInterpolationQuality(previousInterpolationQuality); }