| Index: include/core/SkDevice.h
|
| diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h
|
| index 684a08404c02f036184fc38b7c7d866ece8cea42..c7c5c30b3a03fd19909db1d5ca2d861c9ffc278e 100644
|
| --- a/include/core/SkDevice.h
|
| +++ b/include/core/SkDevice.h
|
| @@ -125,9 +125,10 @@
|
| };
|
|
|
| protected:
|
| - enum TileUsage {
|
| - kPossible_TileUsage, //!< the created device may be drawn tiled
|
| - kNever_TileUsage, //!< the created device will never be drawn tiled
|
| + enum Usage {
|
| + kGeneral_Usage,
|
| + kSaveLayer_Usage, // <! internal use only
|
| + kImageFilter_Usage // <! internal use only
|
| };
|
|
|
| struct TextFlags {
|
| @@ -230,7 +231,7 @@
|
| virtual void drawPatch(const SkDraw&, const SkPoint cubics[12], const SkColor colors[4],
|
| const SkPoint texCoords[4], SkXfermode* xmode, const SkPaint& paint);
|
| /** The SkDevice passed will be an SkDevice which was returned by a call to
|
| - onCreateDevice on this device with kNeverTile_TileExpectation.
|
| + onCreateCompatibleDevice on this device with kSaveLayer_Usage.
|
| */
|
| virtual void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y,
|
| const SkPaint&) = 0;
|
| @@ -252,6 +253,14 @@
|
| */
|
| virtual void lockPixels() {}
|
| virtual void unlockPixels() {}
|
| +
|
| + /**
|
| + * Returns true if the device allows processing of this imagefilter. If
|
| + * false is returned, then the filter is ignored. This may happen for
|
| + * some subclasses that do not support pixel manipulations after drawing
|
| + * has occurred (e.g. printing). The default implementation returns true.
|
| + */
|
| + virtual bool allowImageFilter(const SkImageFilter*) { return true; }
|
|
|
| /**
|
| * Override and return true for filters that the device can handle
|
| @@ -327,38 +336,23 @@
|
| const SkPaint*);
|
|
|
| struct CreateInfo {
|
| - static SkPixelGeometry AdjustGeometry(const SkImageInfo&, TileUsage, SkPixelGeometry);
|
| -
|
| - // The constructor may change the pixel geometry based on other parameters.
|
| - CreateInfo(const SkImageInfo& info, TileUsage tileUsage, SkPixelGeometry geo)
|
| + static SkPixelGeometry AdjustGeometry(const SkImageInfo&, Usage, SkPixelGeometry geo);
|
| +
|
| + // The construct may change the pixel geometry based on usage as needed.
|
| + CreateInfo(const SkImageInfo& info, Usage usage, SkPixelGeometry geo)
|
| : fInfo(info)
|
| - , fTileUsage(tileUsage)
|
| - , fPixelGeometry(AdjustGeometry(info, tileUsage, geo))
|
| + , fUsage(usage)
|
| + , fPixelGeometry(AdjustGeometry(info, usage, geo))
|
| {}
|
|
|
| - const SkImageInfo fInfo;
|
| - const TileUsage fTileUsage;
|
| - const SkPixelGeometry fPixelGeometry;
|
| - };
|
| -
|
| -#ifdef SK_SUPPORT_LEGACY_ONCREATECOMPATIBLEDEVICE
|
| - // legacy method name -- please override onCreateDevice instead
|
| + const SkImageInfo fInfo;
|
| + const Usage fUsage;
|
| + const SkPixelGeometry fPixelGeometry;
|
| + };
|
| +
|
| virtual SkBaseDevice* onCreateCompatibleDevice(const CreateInfo&) {
|
| return NULL;
|
| }
|
| -
|
| - virtual SkBaseDevice* onCreateDevice(const CreateInfo& cinfo, const SkPaint* layerPaint) {
|
| - return this->onCreateCompatibleDevice(cinfo);
|
| - }
|
| -#else
|
| - /**
|
| - * Create a new device based on CreateInfo. If the paint is not null, then it represents a
|
| - * preview of how the new device will be composed with its creator device (this).
|
| - */
|
| - virtual SkBaseDevice* onCreateDevice(const CreateInfo&, const SkPaint*) {
|
| - return NULL;
|
| - }
|
| -#endif
|
|
|
| virtual void initForRootLayer(SkPixelGeometry geo);
|
|
|
|
|