| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 #include "platform/geometry/FloatPoint.h" | 34 #include "platform/geometry/FloatPoint.h" |
| 35 #include "platform/geometry/FloatRect.h" | 35 #include "platform/geometry/FloatRect.h" |
| 36 #include "platform/geometry/IntPoint.h" | 36 #include "platform/geometry/IntPoint.h" |
| 37 #include "platform/graphics/BitmapImage.h" | 37 #include "platform/graphics/BitmapImage.h" |
| 38 #include "platform/graphics/Color.h" | 38 #include "platform/graphics/Color.h" |
| 39 #include "platform/graphics/GraphicsContext.h" | 39 #include "platform/graphics/GraphicsContext.h" |
| 40 #include "platform/graphics/Image.h" | 40 #include "platform/graphics/Image.h" |
| 41 #include "platform/graphics/ImageBuffer.h" | 41 #include "platform/graphics/ImageBuffer.h" |
| 42 #include "platform/graphics/paint/DisplayItemList.h" | 42 #include "platform/graphics/paint/DisplayItemList.h" |
| 43 #include "platform/graphics/paint/DrawingRecorder.h" | 43 #include "platform/graphics/paint/DrawingRecorder.h" |
| 44 #include "platform/graphics/skia/NativeImageSkia.h" | |
| 45 #include "platform/text/BidiTextRun.h" | 44 #include "platform/text/BidiTextRun.h" |
| 46 #include "platform/text/StringTruncator.h" | 45 #include "platform/text/StringTruncator.h" |
| 47 #include "platform/text/TextRun.h" | 46 #include "platform/text/TextRun.h" |
| 48 #include "platform/transforms/AffineTransform.h" | 47 #include "platform/transforms/AffineTransform.h" |
| 49 #include "platform/weborigin/KURL.h" | 48 #include "platform/weborigin/KURL.h" |
| 50 #include "skia/ext/image_operations.h" | 49 #include "skia/ext/image_operations.h" |
| 51 #include "third_party/skia/include/core/SkCanvas.h" | 50 #include "third_party/skia/include/core/SkCanvas.h" |
| 52 #include "third_party/skia/include/core/SkColor.h" | 51 #include "third_party/skia/include/core/SkColor.h" |
| 53 #include "third_party/skia/include/core/SkMatrix.h" | 52 #include "third_party/skia/include/core/SkMatrix.h" |
| 54 #include "wtf/PassOwnPtr.h" | 53 #include "wtf/PassOwnPtr.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 68 const float kMaxDragLabelStringWidth = (kMaxDragLabelWidth - 2 * kDragLabelBorde
rX); | 67 const float kMaxDragLabelStringWidth = (kMaxDragLabelWidth - 2 * kDragLabelBorde
rX); |
| 69 | 68 |
| 70 const float kDragLinkLabelFontSize = 11; | 69 const float kDragLinkLabelFontSize = 11; |
| 71 const float kDragLinkUrlFontSize = 10; | 70 const float kDragLinkUrlFontSize = 10; |
| 72 | 71 |
| 73 PassOwnPtr<DragImage> DragImage::create(Image* image, RespectImageOrientationEnu
m shouldRespectImageOrientation, float deviceScaleFactor, InterpolationQuality i
nterpolationQuality) | 72 PassOwnPtr<DragImage> DragImage::create(Image* image, RespectImageOrientationEnu
m shouldRespectImageOrientation, float deviceScaleFactor, InterpolationQuality i
nterpolationQuality) |
| 74 { | 73 { |
| 75 if (!image) | 74 if (!image) |
| 76 return nullptr; | 75 return nullptr; |
| 77 | 76 |
| 78 RefPtr<NativeImageSkia> bitmap = image->nativeImageForCurrentFrame(); | 77 SkBitmap bitmap; |
| 79 if (!bitmap) | 78 if (!image->bitmapForCurrentFrame(&bitmap)) |
| 80 return nullptr; | 79 return nullptr; |
| 81 | 80 |
| 82 if (image->isBitmapImage()) { | 81 if (image->isBitmapImage()) { |
| 83 ImageOrientation orientation = DefaultImageOrientation; | 82 ImageOrientation orientation = DefaultImageOrientation; |
| 84 BitmapImage* bitmapImage = toBitmapImage(image); | 83 BitmapImage* bitmapImage = toBitmapImage(image); |
| 85 IntSize sizeRespectingOrientation = bitmapImage->sizeRespectingOrientati
on(); | 84 IntSize sizeRespectingOrientation = bitmapImage->sizeRespectingOrientati
on(); |
| 86 | 85 |
| 87 if (shouldRespectImageOrientation == RespectImageOrientation) | 86 if (shouldRespectImageOrientation == RespectImageOrientation) |
| 88 orientation = bitmapImage->currentFrameOrientation(); | 87 orientation = bitmapImage->currentFrameOrientation(); |
| 89 | 88 |
| 90 if (orientation != DefaultImageOrientation) { | 89 if (orientation != DefaultImageOrientation) { |
| 91 FloatRect destRect(FloatPoint(), sizeRespectingOrientation); | 90 FloatRect destRect(FloatPoint(), sizeRespectingOrientation); |
| 92 if (orientation.usesWidthAsHeight()) | 91 if (orientation.usesWidthAsHeight()) |
| 93 destRect = destRect.transposedRect(); | 92 destRect = destRect.transposedRect(); |
| 94 | 93 |
| 95 SkBitmap skBitmap; | 94 SkBitmap skBitmap; |
| 96 if (!skBitmap.tryAllocN32Pixels(sizeRespectingOrientation.width(), s
izeRespectingOrientation.height())) | 95 if (!skBitmap.tryAllocN32Pixels(sizeRespectingOrientation.width(), s
izeRespectingOrientation.height())) |
| 97 return nullptr; | 96 return nullptr; |
| 98 | 97 |
| 99 skBitmap.eraseColor(SK_ColorTRANSPARENT); | 98 skBitmap.eraseColor(SK_ColorTRANSPARENT); |
| 100 SkCanvas canvas(skBitmap); | 99 SkCanvas canvas(skBitmap); |
| 101 canvas.concat(affineTransformToSkMatrix(orientation.transformFromDef
ault(sizeRespectingOrientation))); | 100 canvas.concat(affineTransformToSkMatrix(orientation.transformFromDef
ault(sizeRespectingOrientation))); |
| 102 canvas.drawBitmapRect(bitmap->bitmap(), 0, destRect); | 101 canvas.drawBitmapRect(bitmap, 0, destRect); |
| 103 | 102 |
| 104 return adoptPtr(new DragImage(skBitmap, deviceScaleFactor, interpola
tionQuality)); | 103 return adoptPtr(new DragImage(skBitmap, deviceScaleFactor, interpola
tionQuality)); |
| 105 } | 104 } |
| 106 } | 105 } |
| 107 | 106 |
| 108 SkBitmap skBitmap; | 107 SkBitmap skBitmap; |
| 109 if (!bitmap->bitmap().copyTo(&skBitmap, kN32_SkColorType)) | 108 if (!bitmap.copyTo(&skBitmap, kN32_SkColorType)) |
| 110 return nullptr; | 109 return nullptr; |
| 111 return adoptPtr(new DragImage(skBitmap, deviceScaleFactor, interpolationQual
ity)); | 110 return adoptPtr(new DragImage(skBitmap, deviceScaleFactor, interpolationQual
ity)); |
| 112 } | 111 } |
| 113 | 112 |
| 114 static Font deriveDragLabelFont(int size, FontWeight fontWeight, const FontDescr
iption& systemFont) | 113 static Font deriveDragLabelFont(int size, FontWeight fontWeight, const FontDescr
iption& systemFont) |
| 115 { | 114 { |
| 116 FontDescription description = systemFont; | 115 FontDescription description = systemFont; |
| 117 description.setWeight(fontWeight); | 116 description.setWeight(fontWeight); |
| 118 description.setSpecifiedSize(size); | 117 description.setSpecifiedSize(size); |
| 119 description.setComputedSize(size); | 118 description.setComputedSize(size); |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 *pixel = SkPreMultiplyARGB( | 289 *pixel = SkPreMultiplyARGB( |
| 291 SkColorGetA(*pixel) * fraction, | 290 SkColorGetA(*pixel) * fraction, |
| 292 SkColorGetR(*pixel), | 291 SkColorGetR(*pixel), |
| 293 SkColorGetG(*pixel), | 292 SkColorGetG(*pixel), |
| 294 SkColorGetB(*pixel)); | 293 SkColorGetB(*pixel)); |
| 295 } | 294 } |
| 296 } | 295 } |
| 297 } | 296 } |
| 298 | 297 |
| 299 } // namespace blink | 298 } // namespace blink |
| OLD | NEW |