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

Side by Side Diff: include/core/SkDevice.h

Issue 1156073003: remove unneeded device:lockpixels (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « include/core/SkBitmapDevice.h ('k') | src/core/SkBitmapDevice.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2010 The Android Open Source Project 2 * Copyright 2010 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkDevice_DEFINED 8 #ifndef SkDevice_DEFINED
9 #define SkDevice_DEFINED 9 #define SkDevice_DEFINED
10 10
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 const SkIPoint& getOrigin() const { return fOrigin; } 97 const SkIPoint& getOrigin() const { return fOrigin; }
98 98
99 /** 99 /**
100 * onAttachToCanvas is invoked whenever a device is installed in a canvas 100 * onAttachToCanvas is invoked whenever a device is installed in a canvas
101 * (i.e., setDevice, saveLayer (for the new device created by the save), 101 * (i.e., setDevice, saveLayer (for the new device created by the save),
102 * and SkCanvas' SkBaseDevice & SkBitmap -taking ctors). It allows the 102 * and SkCanvas' SkBaseDevice & SkBitmap -taking ctors). It allows the
103 * devices to prepare for drawing (e.g., locking their pixels, etc.) 103 * devices to prepare for drawing (e.g., locking their pixels, etc.)
104 */ 104 */
105 virtual void onAttachToCanvas(SkCanvas*) { 105 virtual void onAttachToCanvas(SkCanvas*) {
106 SkASSERT(!fAttachedToCanvas); 106 SkASSERT(!fAttachedToCanvas);
107 this->lockPixels();
108 #ifdef SK_DEBUG 107 #ifdef SK_DEBUG
109 fAttachedToCanvas = true; 108 fAttachedToCanvas = true;
110 #endif 109 #endif
111 }; 110 };
112 111
113 /** 112 /**
114 * onDetachFromCanvas notifies a device that it will no longer be drawn to. 113 * onDetachFromCanvas notifies a device that it will no longer be drawn to.
115 * It gives the device a chance to clean up (e.g., unlock its pixels). It 114 * It gives the device a chance to clean up (e.g., unlock its pixels). It
116 * is invoked from setDevice (for the displaced device), restore and 115 * is invoked from setDevice (for the displaced device), restore and
117 * possibly from SkCanvas' dtor. 116 * possibly from SkCanvas' dtor.
118 */ 117 */
119 virtual void onDetachFromCanvas() { 118 virtual void onDetachFromCanvas() {
120 SkASSERT(fAttachedToCanvas); 119 SkASSERT(fAttachedToCanvas);
121 this->unlockPixels();
122 #ifdef SK_DEBUG 120 #ifdef SK_DEBUG
123 fAttachedToCanvas = false; 121 fAttachedToCanvas = false;
124 #endif 122 #endif
125 }; 123 };
126 124
127 protected: 125 protected:
128 enum TileUsage { 126 enum TileUsage {
129 kPossible_TileUsage, //!< the created device may be drawn tiled 127 kPossible_TileUsage, //!< the created device may be drawn tiled
130 kNever_TileUsage, //!< the created device will never be drawn tile d 128 kNever_TileUsage, //!< the created device will never be drawn tile d
131 }; 129 };
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 bool readPixels(const SkImageInfo&, void* dst, size_t rowBytes, int x, int y ); 242 bool readPixels(const SkImageInfo&, void* dst, size_t rowBytes, int x, int y );
245 243
246 /////////////////////////////////////////////////////////////////////////// 244 ///////////////////////////////////////////////////////////////////////////
247 245
248 /** Update as needed the pixel value in the bitmap, so that the caller can 246 /** Update as needed the pixel value in the bitmap, so that the caller can
249 access the pixels directly. 247 access the pixels directly.
250 @return The device contents as a bitmap 248 @return The device contents as a bitmap
251 */ 249 */
252 virtual const SkBitmap& onAccessBitmap() = 0; 250 virtual const SkBitmap& onAccessBitmap() = 0;
253 251
254 /** Called when this device is installed into a Canvas. Balanced by a call
255 to unlockPixels() when the device is removed from a Canvas.
256 */
257 virtual void lockPixels() {}
258 virtual void unlockPixels() {}
259
260 /** 252 /**
261 * Override and return true for filters that the device can handle 253 * Override and return true for filters that the device can handle
262 * intrinsically. Doing so means that SkCanvas will pass-through this 254 * intrinsically. Doing so means that SkCanvas will pass-through this
263 * filter to drawSprite and drawDevice (and potentially filterImage). 255 * filter to drawSprite and drawDevice (and potentially filterImage).
264 * Returning false means the SkCanvas will have apply the filter itself, 256 * Returning false means the SkCanvas will have apply the filter itself,
265 * and just pass the resulting image to the device. 257 * and just pass the resulting image to the device.
266 */ 258 */
267 virtual bool canHandleImageFilter(const SkImageFilter*) { return false; } 259 virtual bool canHandleImageFilter(const SkImageFilter*) { return false; }
268 260
269 /** 261 /**
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 SkDeviceProperties* fLeakyProperties; // will always exist. 392 SkDeviceProperties* fLeakyProperties; // will always exist.
401 393
402 #ifdef SK_DEBUG 394 #ifdef SK_DEBUG
403 bool fAttachedToCanvas; 395 bool fAttachedToCanvas;
404 #endif 396 #endif
405 397
406 typedef SkRefCnt INHERITED; 398 typedef SkRefCnt INHERITED;
407 }; 399 };
408 400
409 #endif 401 #endif
OLDNEW
« no previous file with comments | « include/core/SkBitmapDevice.h ('k') | src/core/SkBitmapDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698