Index: Source/core/page/ImageBitmap.cpp |
diff --git a/Source/core/page/ImageBitmap.cpp b/Source/core/page/ImageBitmap.cpp |
index ffe3af0dfa65d59ae71c04122efe6fad942d5949..7d6bf45e937ed591b1d40759b59527aa17165f89 100644 |
--- a/Source/core/page/ImageBitmap.cpp |
+++ b/Source/core/page/ImageBitmap.cpp |
@@ -119,6 +119,17 @@ ImageBitmap::ImageBitmap(ImageBitmap* bitmap, const IntRect& cropRect) |
ScriptWrappable::init(this); |
} |
+ImageBitmap::ImageBitmap(Image* image, const IntRect& cropRect) |
+ : m_cropRect(cropRect) |
+ , m_imageElement(0) |
+{ |
+ IntRect srcRect = intersection(cropRect, IntRect(IntPoint(), image->size())); |
+ m_bitmap = cropImage(image, cropRect); |
+ m_bitmapRect = IntRect(IntPoint(max(0, -cropRect.x()), max(0, -cropRect.y())), srcRect.size()); |
+ |
+ ScriptWrappable::init(this); |
+} |
+ |
ImageBitmap::~ImageBitmap() |
{ |
if (m_imageElement) |
@@ -128,36 +139,37 @@ ImageBitmap::~ImageBitmap() |
PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLImageElement* image, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(image, normalizedCropRect))); |
- return imageBitmap.release(); |
+ return adoptRef(new ImageBitmap(image, normalizedCropRect)); |
} |
PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLVideoElement* video, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(video, normalizedCropRect))); |
- return imageBitmap.release(); |
+ return adoptRef(new ImageBitmap(video, normalizedCropRect)); |
} |
PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLCanvasElement* canvas, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(canvas, normalizedCropRect))); |
- return imageBitmap.release(); |
+ return adoptRef(new ImageBitmap(canvas, normalizedCropRect)); |
} |
PassRefPtr<ImageBitmap> ImageBitmap::create(ImageData* data, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(data, normalizedCropRect))); |
- return imageBitmap.release(); |
+ return adoptRef(new ImageBitmap(data, normalizedCropRect)); |
} |
PassRefPtr<ImageBitmap> ImageBitmap::create(ImageBitmap* bitmap, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(bitmap, normalizedCropRect))); |
- return imageBitmap.release(); |
+ return adoptRef(new ImageBitmap(bitmap, normalizedCropRect)); |
+} |
+ |
+PassRefPtr<ImageBitmap> ImageBitmap::create(Image* image, const IntRect& cropRect) |
+{ |
+ IntRect normalizedCropRect = normalizeRect(cropRect); |
+ return adoptRef(new ImageBitmap(image, normalizedCropRect)); |
} |
void ImageBitmap::notifyImageSourceChanged() |