Changeset 109016 in webkit
- Timestamp:
- Feb 27, 2012 12:43:47 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r109015 r109016 1 2012-02-27 Matthew Delaney <mdelaney@apple.com> 2 3 Add ImageBuffer support for having a hi-res backing store. This allows 4 ImageBuffer clients to specify a scale factor upon creation so that they 5 don't have to maintain that info themselves as they use/pass around the ImageBuffer. 6 https://bugs.webkit.org/show_bug.cgi?id=79395 7 8 Reviewed by Dan Bernstein. 9 10 No new tests. This patch doesn't change behavior. 11 12 * platform/graphics/ImageBuffer.h: 13 (WebCore::ImageBuffer::create): Scale the backing store by the resolution scale. 14 (WebCore::ImageBuffer::logicalSize): Differentiate the logical size from the backing store's size. 15 (WebCore::ImageBuffer::internalSize): The backing store's size. 16 17 * platform/graphics/cg/ImageBufferCG.cpp: Prefer the explicit use of logicalSize and internalSize. 18 19 Explicitly state a 1x scale for all ImageBuffer creation sites 20 since this is what they currently assume. 21 * html/HTMLCanvasElement.cpp: 22 * html/canvas/CanvasRenderingContext2D.cpp: 23 * html/canvas/WebGLRenderingContext.cpp: 24 * page/Frame.cpp: 25 * platform/graphics/CrossfadeGeneratedImage.cpp: 26 * platform/graphics/ShadowBlur.cpp: 27 * platform/graphics/filters/FEColorMatrix.cpp: 28 * platform/graphics/filters/FEDropShadow.cpp: 29 * platform/graphics/filters/FilterEffect.cpp: 30 * platform/mac/ScrollbarThemeMac.mm: 31 * rendering/FilterEffectRenderer.cpp: 32 * rendering/RenderThemeMac.mm: 33 * rendering/svg/SVGImageBufferTools.cpp: 34 * svg/graphics/SVGImage.cpp: 35 * svg/graphics/SVGImageCache.cpp: 36 37 Update ImageBuffer::size() calls to new versions. 38 * platform/graphics/GraphicsContext.cpp: 39 * platform/graphics/ImageBuffer.cpp: 40 * platform/graphics/skia/PlatformContextSkia.cpp: 41 1 42 2012-02-27 Mihnea Ovidenie <mihnea@adobe.com> 2 43 -
trunk/Source/WebCore/html/HTMLCanvasElement.cpp
r108658 r109016 514 514 #endif 515 515 DeferralMode deferralMode = shouldDefer() ? Deferred : NonDeferred; 516 m_imageBuffer = ImageBuffer::create(bufferSize, ColorSpaceDeviceRGB, renderingMode, deferralMode);516 m_imageBuffer = ImageBuffer::create(bufferSize, 1, ColorSpaceDeviceRGB, renderingMode, deferralMode); 517 517 if (!m_imageBuffer) 518 518 return; … … 524 524 #if USE(JSC) 525 525 JSC::JSLock lock(JSC::SilenceAssertionsOnly); 526 scriptExecutionContext()->globalData()->heap.reportExtraMemoryCost(m_imageBuffer->dataSize()); 526 size_t numBytes = 4 * m_imageBuffer->internalSize().width() * m_imageBuffer->internalSize().height(); 527 scriptExecutionContext()->globalData()->heap.reportExtraMemoryCost(numBytes); 527 528 #endif 528 529 -
trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
r108597 r109016 1522 1522 { 1523 1523 RenderingMode renderMode = isAccelerated() ? Accelerated : Unaccelerated; 1524 return ImageBuffer::create(bufferRect.size(), ColorSpaceDeviceRGB, renderMode);1524 return ImageBuffer::create(bufferRect.size(), 1, ColorSpaceDeviceRGB, renderMode); 1525 1525 } 1526 1526 … … 1884 1884 IntRect destRect = enclosingIntRect(clipRect); 1885 1885 destRect.move(destOffset); 1886 destRect.intersect(IntRect(IntPoint(), buffer-> size()));1886 destRect.intersect(IntRect(IntPoint(), buffer->internalSize())); 1887 1887 if (destRect.isEmpty()) 1888 1888 return; … … 2090 2090 2091 2091 #if USE(IOSURFACE_CANVAS_BACKING_STORE) 2092 OwnPtr<ImageBuffer> maskImage = ImageBuffer::create(maskRect.size(), ColorSpaceDeviceRGB, Accelerated);2092 OwnPtr<ImageBuffer> maskImage = ImageBuffer::create(maskRect.size(), 1, ColorSpaceDeviceRGB, Accelerated); 2093 2093 #else 2094 OwnPtr<ImageBuffer> maskImage = ImageBuffer::create(maskRect.size() );2094 OwnPtr<ImageBuffer> maskImage = ImageBuffer::create(maskRect.size(), 1); 2095 2095 #endif 2096 2096 -
trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp
r108861 r109016 5331 5331 if (!buf) 5332 5332 break; 5333 if (buf-> size() != size)5333 if (buf->logicalSize() != size) 5334 5334 continue; 5335 5335 bubbleToFront(i); … … 5337 5337 } 5338 5338 5339 OwnPtr<ImageBuffer> temp = ImageBuffer::create(size );5339 OwnPtr<ImageBuffer> temp = ImageBuffer::create(size, 1); 5340 5340 if (!temp) 5341 5341 return 0; -
trunk/Source/WebCore/page/Frame.cpp
r108700 r109016 1095 1095 IntRect paintingRect = pixelSnappedIntRect(renderer->paintingRootRect(topLevelRect)); 1096 1096 1097 OwnPtr<ImageBuffer> buffer(ImageBuffer::create(paintingRect.size() ));1097 OwnPtr<ImageBuffer> buffer(ImageBuffer::create(paintingRect.size(), 1, ColorSpaceDeviceRGB)); 1098 1098 if (!buffer) 1099 1099 return 0; … … 1118 1118 IntRect paintingRect = enclosingIntRect(selection()->bounds()); 1119 1119 1120 OwnPtr<ImageBuffer> buffer(ImageBuffer::create(paintingRect.size() ));1120 OwnPtr<ImageBuffer> buffer(ImageBuffer::create(paintingRect.size(), 1, ColorSpaceDeviceRGB)); 1121 1121 if (!buffer) 1122 1122 return 0; -
trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp
r102893 r109016 96 96 void CrossfadeGeneratedImage::drawPattern(GraphicsContext* context, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator compositeOp, const FloatRect& dstRect) 97 97 { 98 OwnPtr<ImageBuffer> imageBuffer = ImageBuffer::create(m_size, ColorSpaceDeviceRGB, context->isAcceleratedContext() ? Accelerated : Unaccelerated);98 OwnPtr<ImageBuffer> imageBuffer = ImageBuffer::create(m_size, 1, ColorSpaceDeviceRGB, context->isAcceleratedContext() ? Accelerated : Unaccelerated); 99 99 if (!imageBuffer) 100 100 return; -
trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp
r107157 r109016 488 488 } 489 489 490 void GraphicsContext::drawTiledImage(Image* image, ColorSpace styleColorSpace, const IntRect& rect, const IntPoint& srcPoint, const IntSize& tileSize, CompositeOperator op, bool useLowQualityScale)490 void GraphicsContext::drawTiledImage(Image* image, ColorSpace styleColorSpace, const IntRect& destRect, const IntPoint& srcPoint, const IntSize& tileSize, CompositeOperator op, bool useLowQualityScale) 491 491 { 492 492 if (paintingDisabled() || !image) … … 496 496 InterpolationQuality previousInterpolationQuality = imageInterpolationQuality(); 497 497 setImageInterpolationQuality(InterpolationLow); 498 image->drawTiled(this, rect, srcPoint, tileSize, styleColorSpace, op);498 image->drawTiled(this, destRect, srcPoint, tileSize, styleColorSpace, op); 499 499 setImageInterpolationQuality(previousInterpolationQuality); 500 500 } else 501 image->drawTiled(this, rect, srcPoint, tileSize, styleColorSpace, op);501 image->drawTiled(this, destRect, srcPoint, tileSize, styleColorSpace, op); 502 502 } 503 503 … … 554 554 555 555 if (tsw == -1) 556 tsw = image-> width();556 tsw = image->logicalSize().width(); 557 557 if (tsh == -1) 558 tsh = image-> height();558 tsh = image->logicalSize().height(); 559 559 560 560 if (tw == -1) 561 tw = image-> width();561 tw = image->logicalSize().width(); 562 562 if (th == -1) 563 th = image-> height();563 th = image->logicalSize().height(); 564 564 565 565 if (useLowQualityScale) { … … 755 755 IntSize scaledSize(static_cast<int>(ceil(size.width() * transform.xScale())), static_cast<int>(ceil(size.height() * transform.yScale()))); 756 756 757 OwnPtr<ImageBuffer> buffer = ImageBuffer::create(scaledSize, ColorSpaceDeviceRGB, isAcceleratedContext() ? Accelerated : Unaccelerated);757 OwnPtr<ImageBuffer> buffer = ImageBuffer::create(scaledSize, 1, ColorSpaceDeviceRGB, isAcceleratedContext() ? Accelerated : Unaccelerated); 758 758 if (!buffer) 759 759 return nullptr; -
trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp
r106836 r109016 72 72 inline void ImageBuffer::genericConvertToLuminanceMask() 73 73 { 74 IntRect luminanceRect(IntPoint(), size());74 IntRect luminanceRect(IntPoint(), internalSize()); 75 75 RefPtr<ByteArray> srcPixelArray = getUnmultipliedImageData(luminanceRect); 76 76 -
trunk/Source/WebCore/platform/graphics/ImageBuffer.h
r106836 r109016 32 32 #include "ColorSpace.h" 33 33 #include "FloatRect.h" 34 #include "GraphicsContext.h" 34 35 #if USE(ACCELERATED_COMPOSITING) 35 36 #include "GraphicsLayer.h" … … 47 48 namespace WebCore { 48 49 49 class GraphicsContext;50 50 class Image; 51 51 class ImageData; … … 78 78 public: 79 79 // Will return a null pointer on allocation failure. 80 static PassOwnPtr<ImageBuffer> create(const IntSize& size, ColorSpace colorSpace = ColorSpaceDeviceRGB, RenderingMode renderingMode = Unaccelerated, DeferralMode deferralMode = NonDeferred)80 static PassOwnPtr<ImageBuffer> create(const IntSize& size, float resolutionScale = 1, ColorSpace colorSpace = ColorSpaceDeviceRGB, RenderingMode renderingMode = Unaccelerated, DeferralMode deferralMode = NonDeferred) 81 81 { 82 82 bool success = false; 83 OwnPtr<ImageBuffer> buf = adoptPtr(new ImageBuffer(size, colorSpace, renderingMode, deferralMode, success)); 84 if (success) 85 return buf.release(); 86 return nullptr; 83 float scaledWidth = ceilf(resolutionScale * size.width()); 84 float scaledHeight = ceilf(resolutionScale * size.height()); 85 IntSize internalSize(scaledWidth, scaledHeight); 86 87 OwnPtr<ImageBuffer> buf = adoptPtr(new ImageBuffer(internalSize, colorSpace, renderingMode, deferralMode, success)); 88 if (!success) 89 return nullptr; 90 91 buf->m_logicalSize = size; 92 buf->m_resolutionScale = resolutionScale; 93 buf->context()->scale(FloatSize(resolutionScale, resolutionScale)); 94 return buf.release(); 87 95 } 88 96 89 97 ~ImageBuffer(); 90 98 91 const IntSize& size() const { return m_size; } 92 int width() const { return m_size.width(); } 93 int height() const { return m_size.height(); } 94 95 size_t dataSize() const; 96 99 // The actual resolution of the backing store 100 const IntSize& internalSize() const { return m_size; } 101 const IntSize& logicalSize() const { return m_logicalSize; } 102 97 103 GraphicsContext* context() const; 98 104 … … 112 118 void platformTransformColorSpace(const Vector<int>&); 113 119 #else 114 AffineTransform baseTransform() const { return AffineTransform(1, 0, 0, -1, 0, m_size.height()); }120 AffineTransform baseTransform() const { return AffineTransform(1, 0, 0, -1, 0, internalSize().height()); } 115 121 #endif 116 122 #if USE(ACCELERATED_COMPOSITING) … … 122 128 NativeImagePtr copyNativeImage(BackingStoreCopy = CopyBackingStore) const; 123 129 #endif 124 125 130 void clip(GraphicsContext*, const FloatRect&) const; 126 131 … … 137 142 private: 138 143 ImageBufferData m_data; 139 140 144 IntSize m_size; 145 IntSize m_logicalSize; 146 float m_resolutionScale; 141 147 OwnPtr<GraphicsContext> m_context; 142 148 -
trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp
r108008 r109016 74 74 #endif 75 75 // We do not need to recreate the buffer if the current buffer is large enough. 76 if (m_imageBuffer && m_imageBuffer-> width() >= size.width() && m_imageBuffer->height() >= size.height())76 if (m_imageBuffer && m_imageBuffer->logicalSize().width() >= size.width() && m_imageBuffer->logicalSize().height() >= size.height()) 77 77 return m_imageBuffer.get(); 78 78 … … 81 81 82 82 clearScratchBuffer(); 83 m_imageBuffer = ImageBuffer::create(roundedSize );83 m_imageBuffer = ImageBuffer::create(roundedSize, 1); 84 84 return m_imageBuffer.get(); 85 85 } … … 441 441 GraphicsContextStateSaver stateSaver(*graphicsContext); 442 442 443 IntSize bufferSize = m_layerImage-> size();443 IntSize bufferSize = m_layerImage->internalSize(); 444 444 if (bufferSize != m_layerSize) { 445 445 // The rect passed to clipToImageBuffer() has to be the size of the entire buffer, -
trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp
r106836 r109016 77 77 } 78 78 79 size_t ImageBuffer::dataSize() const80 {81 return m_size.width() * m_size.height() * 4;82 }83 84 79 GraphicsContext* ImageBuffer::context() const 85 80 { -
trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp
r106860 r109016 109 109 110 110 ImageBuffer::ImageBuffer(const IntSize& size, ColorSpace imageColorSpace, RenderingMode renderingMode, DeferralMode, bool& success) 111 : m_data(size) 111 : m_data(size) // NOTE: The input here isn't important as ImageBufferDataCG's constructor just ignores it. 112 112 , m_size(size) 113 113 { … … 122 122 // Prevent integer overflows 123 123 m_data.m_bytesPerRow = 4 * width; 124 Checked<size_t, RecordOverflow> dataSize= height * m_data.m_bytesPerRow;125 if ( dataSize.hasOverflowed())124 Checked<size_t, RecordOverflow> numBytes = height * m_data.m_bytesPerRow; 125 if (numBytes.hasOverflowed()) 126 126 return; 127 127 … … 163 163 cgContext.adoptCF(CGBitmapContextCreate(m_data.m_data, width.unsafeGet(), height.unsafeGet(), 8, m_data.m_bytesPerRow.unsafeGet(), m_data.m_colorSpace, m_data.m_bitmapInfo)); 164 164 // Create a live image that wraps the data. 165 m_data.m_dataProvider.adoptCF(CGDataProviderCreateWithData(0, m_data.m_data, dataSize.unsafeGet(), releaseImageData));165 m_data.m_dataProvider.adoptCF(CGDataProviderCreateWithData(0, m_data.m_data, numBytes.unsafeGet(), releaseImageData)); 166 166 } 167 167 … … 181 181 ImageBuffer::~ImageBuffer() 182 182 { 183 }184 185 size_t ImageBuffer::dataSize() const186 {187 return m_size.height() * m_data.m_bytesPerRow.unsafeGet();188 183 } 189 184 … … 223 218 switch (copyBehavior) { 224 219 case DontCopyBackingStore: 225 image = CGImageCreate( m_size.width(), m_size.height(), 8, 32, m_data.m_bytesPerRow.unsafeGet(), m_data.m_colorSpace, m_data.m_bitmapInfo, m_data.m_dataProvider.get(), 0, true, kCGRenderingIntentDefault);220 image = CGImageCreate(internalSize().width(), internalSize().height(), 8, 32, m_data.m_bytesPerRow.unsafeGet(), m_data.m_colorSpace, m_data.m_bitmapInfo, m_data.m_dataProvider.get(), 0, true, kCGRenderingIntentDefault); 226 221 break; 227 222 case CopyBackingStore: … … 256 251 image.adoptCF(copyNativeImage(DontCopyBackingStore)); 257 252 258 destContext->drawNativeImage(image.get(), m_size, colorSpace, destRect, srcRect, op); 253 FloatRect adjustedSrcRect = srcRect; 254 adjustedSrcRect.scale(m_resolutionScale, m_resolutionScale); 255 destContext->drawNativeImage(image.get(), internalSize(), colorSpace, destRect, adjustedSrcRect, op); 259 256 } 260 257 261 258 void ImageBuffer::drawPattern(GraphicsContext* destContext, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator op, const FloatRect& destRect) 262 259 { 260 FloatRect adjustedSrcRect = srcRect; 261 adjustedSrcRect.scale(m_resolutionScale, m_resolutionScale); 262 263 263 if (!m_context->isAcceleratedContext()) { 264 264 if (destContext == m_context || destContext->isAcceleratedContext()) { 265 265 RefPtr<Image> copy = copyImage(CopyBackingStore); // Drawing into our own buffer, need to deep copy. 266 copy->drawPattern(destContext, srcRect, patternTransform, phase, styleColorSpace, op, destRect);266 copy->drawPattern(destContext, adjustedSrcRect, patternTransform, phase, styleColorSpace, op, destRect); 267 267 } else { 268 268 RefPtr<Image> imageForRendering = copyImage(DontCopyBackingStore); 269 imageForRendering->drawPattern(destContext, srcRect, patternTransform, phase, styleColorSpace, op, destRect);269 imageForRendering->drawPattern(destContext, adjustedSrcRect, patternTransform, phase, styleColorSpace, op, destRect); 270 270 } 271 271 } else { 272 272 RefPtr<Image> copy = copyImage(CopyBackingStore); 273 copy->drawPattern(destContext, srcRect, patternTransform, phase, styleColorSpace, op, destRect);273 copy->drawPattern(destContext, adjustedSrcRect, patternTransform, phase, styleColorSpace, op, destRect); 274 274 } 275 275 } … … 278 278 { 279 279 CGContextRef platformContextToClip = contextToClip->platformContext(); 280 // FIXME: This image needs to be grayscale to be used as an alpha mask here. 280 281 RetainPtr<CGImageRef> image(AdoptCF, copyNativeImage(DontCopyBackingStore)); 281 282 CGContextTranslateCTM(platformContextToClip, rect.x(), rect.y() + rect.height()); … … 294 295 #endif 295 296 } 296 return m_data.getData(rect, m_size, m_context->isAcceleratedContext(), true);297 return m_data.getData(rect, internalSize(), m_context->isAcceleratedContext(), true); 297 298 } 298 299 … … 305 306 #endif 306 307 } 307 return m_data.getData(rect, m_size, m_context->isAcceleratedContext(), false);308 return m_data.getData(rect, internalSize(), m_context->isAcceleratedContext(), false); 308 309 } 309 310 … … 311 312 { 312 313 if (!m_context->isAcceleratedContext()) { 313 m_data.putData(source, sourceSize, sourceRect, destPoint, m_size, m_context->isAcceleratedContext(), multiplied == Unmultiplied);314 m_data.putData(source, sourceSize, sourceRect, destPoint, internalSize(), m_context->isAcceleratedContext(), multiplied == Unmultiplied); 314 315 return; 315 316 } … … 318 319 // Make a copy of the source to ensure the bits don't change before being drawn 319 320 IntSize sourceCopySize(sourceRect.width(), sourceRect.height()); 320 OwnPtr<ImageBuffer> sourceCopy = ImageBuffer::create(sourceCopySize, ColorSpaceDeviceRGB, Unaccelerated);321 OwnPtr<ImageBuffer> sourceCopy = ImageBuffer::create(sourceCopySize, 1, ColorSpaceDeviceRGB, Unaccelerated); 321 322 if (!sourceCopy) 322 323 return; 323 sourceCopy->m_data.putData(source, sourceSize, sourceRect, IntPoint(-sourceRect.x(), -sourceRect.y()), sourceCopy->size(), sourceCopy->context()->isAcceleratedContext(), multiplied == Unmultiplied); 324 325 sourceCopy->m_data.putData(source, sourceSize, sourceRect, IntPoint(-sourceRect.x(), -sourceRect.y()), sourceCopy->internalSize(), sourceCopy->context()->isAcceleratedContext(), multiplied == Unmultiplied); 324 326 325 327 // Set up context for using drawImage as a direct bit copy … … 334 336 335 337 // Draw the image in CG coordinate space 336 IntPoint destPointInCGCoords(destPoint.x() + sourceRect.x(), m_size.height() - (destPoint.y()+sourceRect.y()) - sourceRect.height());338 IntPoint destPointInCGCoords(destPoint.x() + sourceRect.x(), internalSize().height() - (destPoint.y()+sourceRect.y()) - sourceRect.height()); 337 339 IntRect destRectInCGCoords(destPointInCGCoords, sourceCopySize); 338 340 RetainPtr<CGImageRef> sourceCopyImage(AdoptCF, sourceCopy->copyNativeImage()); … … 419 421 if (CFEqual(uti.get(), jpegUTI())) { 420 422 // JPEGs don't have an alpha channel, so we have to manually composite on top of black. 421 arr = getPremultipliedImageData(IntRect(IntPoint(0, 0), m_size));423 arr = getPremultipliedImageData(IntRect(IntPoint(0, 0), internalSize())); 422 424 423 425 unsigned char *data = arr->data(); 424 for (int i = 0; i < width() *height(); i++)426 for (int i = 0; i < internalSize().width() * internalSize().height(); i++) 425 427 data[i * 4 + 3] = 255; // The image is already premultiplied, so we just need to make it opaque. 426 428 427 429 RetainPtr<CGDataProviderRef> dataProvider; 428 430 429 dataProvider.adoptCF(CGDataProviderCreateWithData(0, data, 430 4 * width() * height(), 0)); 431 dataProvider.adoptCF(CGDataProviderCreateWithData(0, data, 4 * internalSize().width() * internalSize().height(), 0)); 431 432 432 433 if (!dataProvider) 433 434 return "data:,"; 434 435 435 image.adoptCF(CGImageCreate( width(), height(), 8, 32, 4 *width(),436 image.adoptCF(CGImageCreate(internalSize().width(), internalSize().height(), 8, 32, 4 * internalSize().width(), 436 437 CGColorSpaceCreateDeviceRGB(), kCGBitmapByteOrderDefault | kCGImageAlphaLast, 437 438 dataProvider.get(), 0, false, kCGRenderingIntentDefault)); -
trunk/Source/WebCore/platform/graphics/filters/FEDropShadow.cpp
r106836 r109016 104 104 105 105 // TODO: Direct pixel access to ImageBuffer would avoid copying the ImageData. 106 IntRect shadowArea(IntPoint(), resultImage-> size());106 IntRect shadowArea(IntPoint(), resultImage->internalSize()); 107 107 RefPtr<ByteArray> srcPixelArray = resultImage->getPremultipliedImageData(shadowArea); 108 108 -
trunk/Source/WebCore/platform/graphics/filters/FilterEffect.cpp
r106836 r109016 128 128 if (m_imageBufferResult) 129 129 return m_imageBufferResult.get(); 130 m_imageBufferResult = ImageBuffer::create(m_absolutePaintRect.size(), ColorSpaceLinearRGB, m_filter->renderingMode());130 m_imageBufferResult = ImageBuffer::create(m_absolutePaintRect.size(), 1, ColorSpaceLinearRGB, m_filter->renderingMode()); 131 131 IntRect destinationRect(IntPoint(), m_absolutePaintRect.size()); 132 132 if (m_premultipliedImageResult) … … 265 265 if (m_absolutePaintRect.isEmpty()) 266 266 return 0; 267 m_imageBufferResult = ImageBuffer::create(m_absolutePaintRect.size(), ColorSpaceLinearRGB, m_filter->renderingMode());267 m_imageBufferResult = ImageBuffer::create(m_absolutePaintRect.size(), 1, ColorSpaceLinearRGB, m_filter->renderingMode()); 268 268 if (!m_imageBufferResult) 269 269 return 0; -
trunk/Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp
r106836 r109016 110 110 } 111 111 112 size_t ImageBuffer::dataSize() const113 {114 return m_size.width() * m_size.height() * 4;115 }116 117 112 GraphicsContext* ImageBuffer::context() const 118 113 { -
trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
r106836 r109016 170 170 } 171 171 172 size_t ImageBuffer::dataSize() const173 {174 return m_size.width() * m_size.height() * 4;175 }176 177 172 PassRefPtr<Image> ImageBuffer::copyImage(BackingStoreCopy copyBehavior) const 178 173 { -
trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
r108714 r109016 242 242 canvas()->clipRect(bounds); 243 243 244 if (imageBuffer-> size().isEmpty())244 if (imageBuffer->internalSize().isEmpty()) 245 245 return; 246 246 -
trunk/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.h
r108135 r109016 33 33 ~BitmapTextureImageBuffer() { destroy(); } 34 34 virtual void destroy() { m_image.clear(); } 35 virtual IntSize size() const { return m_image-> size(); }35 virtual IntSize size() const { return m_image->internalSize(); } 36 36 virtual void didReset(); 37 37 virtual bool isValid() const { return m_image; } -
trunk/Source/WebCore/platform/graphics/wince/ImageBufferWinCE.cpp
r106836 r109016 87 87 ImageBuffer::~ImageBuffer() 88 88 { 89 }90 91 size_t ImageBuffer::dataSize() const92 {93 return m_size.width() * m_size.height() * 4;94 89 } 95 90 -
trunk/Source/WebCore/platform/graphics/wx/ImageBufferWx.cpp
r106836 r109016 47 47 ImageBuffer::~ImageBuffer() 48 48 { 49 }50 51 size_t ImageBuffer::dataSize() const52 {53 notImplemented();54 return 0;55 49 } 56 50 -
trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm
r107119 r109016 590 590 bufferRect.intersect(damageRect); 591 591 592 OwnPtr<ImageBuffer> imageBuffer = ImageBuffer::create(bufferRect.size() );592 OwnPtr<ImageBuffer> imageBuffer = ImageBuffer::create(bufferRect.size(), 1); 593 593 if (!imageBuffer) 594 594 return true; -
trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp
r107822 r109016 323 323 // buffer if we have not yet done so. 324 324 if (!m_graphicsBufferAttached) { 325 setSourceImage(ImageBuffer::create(IntSize(m_sourceDrawingRegion.width(), m_sourceDrawingRegion.height()), ColorSpaceDeviceRGB, renderingMode())); 325 IntSize logicalSize(m_sourceDrawingRegion.width(), m_sourceDrawingRegion.height()); 326 setSourceImage(ImageBuffer::create(logicalSize, 1, ColorSpaceDeviceRGB, renderingMode())); 326 327 m_graphicsBufferAttached = true; 327 328 } -
trunk/Source/WebCore/rendering/RenderThemeMac.mm
r108261 r109016 991 991 trackInfo.filler1 = 0; 992 992 993 OwnPtr<ImageBuffer> imageBuffer = ImageBuffer::create(inflatedRect.size() );993 OwnPtr<ImageBuffer> imageBuffer = ImageBuffer::create(inflatedRect.size(), 1); 994 994 if (!imageBuffer) 995 995 return true; -
trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp
r106108 r109016 61 61 62 62 IntSize clampedSize = clampedAbsoluteSize(paintRect.size()); 63 OwnPtr<ImageBuffer> image = ImageBuffer::create(clampedSize, colorSpace, renderingMode);63 OwnPtr<ImageBuffer> image = ImageBuffer::create(clampedSize, 1, colorSpace, renderingMode); 64 64 if (!image) 65 65 return false; … … 90 90 return false; 91 91 92 OwnPtr<ImageBuffer> image = ImageBuffer::create(imageSize, colorSpace, renderingMode);92 OwnPtr<ImageBuffer> image = ImageBuffer::create(imageSize, 1, colorSpace, renderingMode); 93 93 if (!image) 94 94 return false; -
trunk/Source/WebCore/svg/graphics/SVGImage.cpp
r108834 r109016 313 313 if (!m_page) 314 314 return 0; 315 OwnPtr<ImageBuffer> buffer = ImageBuffer::create(size() );315 OwnPtr<ImageBuffer> buffer = ImageBuffer::create(size(), 1); 316 316 if (!buffer) // failed to allocate image 317 317 return 0; -
trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp
r108834 r109016 145 145 146 146 // Create and cache new image and image buffer at requested size. 147 OwnPtr<ImageBuffer> newBuffer = ImageBuffer::create(size );147 OwnPtr<ImageBuffer> newBuffer = ImageBuffer::create(size, 1); 148 148 if (!newBuffer) 149 149 return Image::nullImage();
Note: See TracChangeset
for help on using the changeset viewer.