Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(687)

Unified Diff: skia/ext/skia_utils_mac.mm

Issue 2001653002: Remove SkDevice, obsolete constructor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clean out debugging statements Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/ext/skia_utils_mac.h ('k') | skia/ext/skia_utils_mac_unittest.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/ext/skia_utils_mac.mm
diff --git a/skia/ext/skia_utils_mac.mm b/skia/ext/skia_utils_mac.mm
index c1f1552321a963b1a5f6e6a13f2251e4b27930f1..0a6be68a91bf125fbd40c430c4e54cda1406cf6f 100644
--- a/skia/ext/skia_utils_mac.mm
+++ b/skia/ext/skia_utils_mac.mm
@@ -12,7 +12,6 @@
#include "base/logging.h"
#include "base/mac/scoped_cftyperef.h"
#include "base/mac/scoped_nsobject.h"
-#include "skia/ext/bitmap_platform_device_mac.h"
#include "skia/ext/platform_canvas.h"
#include "third_party/skia/include/utils/mac/SkCGUtils.h"
@@ -191,10 +190,8 @@ SkBitmap CGImageToSkBitmap(CGImageRef image) {
int width = CGImageGetWidth(image);
int height = CGImageGetHeight(image);
- sk_sp<skia::BitmapPlatformDevice> device(
- skia::BitmapPlatformDevice::Create(NULL, width, height, false));
-
- sk_sp<SkCanvas> canvas(skia::CreateCanvas(device, RETURN_NULL_ON_FAILURE));
+ sk_sp<SkCanvas> canvas(skia::CreatePlatformCanvas(
+ nullptr, width, height, false, RETURN_NULL_ON_FAILURE));
ScopedPlatformPaint p(canvas.get());
CGContextRef context = p.GetPlatformSurface();
@@ -211,11 +208,7 @@ SkBitmap CGImageToSkBitmap(CGImageRef image) {
CGRect rect = CGRectMake(0, 0, width, height);
CGContextDrawImage(context, rect, image);
- // Because |device| will be cleaned up and will take its pixels with it, we
- // copy it to the stack and return it.
- SkBitmap bitmap = device->accessBitmap(false);
-
- return bitmap;
+ return skia::ReadPixels(canvas.get());
}
SkBitmap NSImageToSkBitmapWithColorSpace(
@@ -269,20 +262,10 @@ NSImage* SkBitmapToNSImage(const SkBitmap& skiaBitmap) {
return SkBitmapToNSImageWithColorSpace(skiaBitmap, colorSpace.get());
}
-SkiaBitLocker::SkiaBitLocker(SkCanvas* canvas)
- : canvas_(canvas),
- userClipRectSpecified_(false),
- cgContext_(0),
- bitmapScaleFactor_(1),
- useDeviceBits_(false),
- bitmapIsDummy_(false) {
-}
-
SkiaBitLocker::SkiaBitLocker(SkCanvas* canvas,
const SkIRect& userClipRect,
SkScalar bitmapScaleFactor)
: canvas_(canvas),
- userClipRectSpecified_(true),
cgContext_(0),
bitmapScaleFactor_(bitmapScaleFactor),
useDeviceBits_(false),
@@ -293,78 +276,13 @@ SkiaBitLocker::SkiaBitLocker(SkCanvas* canvas,
SkiaBitLocker::~SkiaBitLocker() {
releaseIfNeeded();
- if (userClipRectSpecified_)
- canvas_->restore();
+ canvas_->restore();
}
SkIRect SkiaBitLocker::computeDirtyRect() {
// If the user specified a clip region, assume that it was tight and that the
// dirty rect is approximately the whole bitmap.
- if (userClipRectSpecified_)
- return SkIRect::MakeWH(offscreen_.width(), offscreen_.height());
-
- // Find the bits that were drawn to.
- SkAutoLockPixels lockedPixels(offscreen_);
- const uint32_t* pixelBase
- = reinterpret_cast<uint32_t*>(offscreen_.getPixels());
- int rowPixels = offscreen_.rowBytesAsPixels();
- int width = offscreen_.width();
- int height = offscreen_.height();
- SkIRect bounds;
- bounds.fTop = 0;
- int x;
- int y = -1;
- const uint32_t* pixels = pixelBase;
- while (++y < height) {
- for (x = 0; x < width; ++x) {
- if (pixels[x]) {
- bounds.fTop = y;
- goto foundTop;
- }
- }
- pixels += rowPixels;
- }
-foundTop:
- bounds.fBottom = height;
- y = height;
- pixels = pixelBase + rowPixels * (y - 1);
- while (--y > bounds.fTop) {
- for (x = 0; x < width; ++x) {
- if (pixels[x]) {
- bounds.fBottom = y + 1;
- goto foundBottom;
- }
- }
- pixels -= rowPixels;
- }
-foundBottom:
- bounds.fLeft = 0;
- x = -1;
- while (++x < width) {
- pixels = pixelBase + rowPixels * bounds.fTop;
- for (y = bounds.fTop; y < bounds.fBottom; ++y) {
- if (pixels[x]) {
- bounds.fLeft = x;
- goto foundLeft;
- }
- pixels += rowPixels;
- }
- }
-foundLeft:
- bounds.fRight = width;
- x = width;
- while (--x > bounds.fLeft) {
- pixels = pixelBase + rowPixels * bounds.fTop;
- for (y = bounds.fTop; y < bounds.fBottom; ++y) {
- if (pixels[x]) {
- bounds.fRight = x + 1;
- goto foundRight;
- }
- pixels += rowPixels;
- }
- }
-foundRight:
- return bounds;
+ return SkIRect::MakeWH(offscreen_.width(), offscreen_.height());
}
// This must be called to balance calls to cgContext
@@ -403,18 +321,15 @@ CGContextRef SkiaBitLocker::cgContext() {
clip_bounds = SkIRect::MakeXYWH(0, 0, 1, 1);
}
- SkBaseDevice* device = canvas_->getTopDevice();
- DCHECK(device);
- if (!device)
- return 0;
-
releaseIfNeeded(); // This flushes any prior bitmap use
// remember the top/left, in case we need to compose this later
bitmapOffset_.set(clip_bounds.x(), clip_bounds.y());
// Now make clip_bounds be relative to the current layer/device
- clip_bounds.offset(-device->getOrigin());
+ if (!bitmapIsDummy_) {
+ canvas_->temporary_internal_describeTopLayer(nullptr, &clip_bounds);
+ }
SkPixmap devicePixels;
skia::GetWritablePixels(canvas_, &devicePixels);
« no previous file with comments | « skia/ext/skia_utils_mac.h ('k') | skia/ext/skia_utils_mac_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698