Chromium Code Reviews| Index: include/core/SkCanvas.h |
| diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h |
| index 7235efb2f0a9cd3b23132541d9c695b0c81e1704..cc1bfca612277a00c5113798b9af1a00e2ae3d63 100644 |
| --- a/include/core/SkCanvas.h |
| +++ b/include/core/SkCanvas.h |
| @@ -126,6 +126,18 @@ public: |
| /////////////////////////////////////////////////////////////////////////// |
| /** |
| + * If the canvas has direct access to its pixels (i.e. they are in local |
| + * RAM) return the const-address of those pixels, and if not null, return |
|
hal.canary
2014/02/12 15:11:02
And if the canvas has a concept of "pixels" at all
reed1
2014/02/12 17:24:10
Done.
|
| + * the ImageInfo and rowBytes. The returned address is only valid while |
| + * the canvas object is in scope and unchanged. Any API calls made on the |
| + * canvas can invalidate this address. |
| + * |
| + * On failure, returns NULL and the info and rowBytes parameters are |
| + * ignored. |
| + */ |
| + const void* peekPixels(SkImageInfo* info, size_t* rowBytes); |
| + |
| + /** |
| * This enum can be used with read/writePixels to perform a pixel ops to or |
| * from an 8888 config other than Skia's native config (SkPMColor). There |
| * are three byte orders supported: native, BGRA, and RGBA. Each has a |
| @@ -1019,6 +1031,9 @@ protected: |
| // default impl defers to getDevice()->newSurface(info) |
| virtual SkSurface* onNewSurface(const SkImageInfo&); |
| + // default impl defers to its device |
| + virtual const void* onPeekPixels(SkImageInfo*, size_t* rowBytes); |
| + |
| // Returns the canvas to be used by DrawIter. Default implementation |
| // returns this. Subclasses that encapsulate an indirect canvas may |
| // need to overload this method. The impl must keep track of this, as it |