| Index: src/utils/SkPictureUtils.cpp
|
| ===================================================================
|
| --- src/utils/SkPictureUtils.cpp (revision 12922)
|
| +++ src/utils/SkPictureUtils.cpp (working copy)
|
| @@ -8,6 +8,7 @@
|
| #include "SkBitmapDevice.h"
|
| #include "SkCanvas.h"
|
| #include "SkData.h"
|
| +#include "SkNoSaveLayerCanvas.h"
|
| #include "SkPictureUtils.h"
|
| #include "SkPixelRef.h"
|
| #include "SkRRect.h"
|
| @@ -64,7 +65,7 @@
|
| }
|
| virtual GrRenderTarget* accessRenderTarget() SK_OVERRIDE { return NULL; }
|
| virtual bool filterTextFlags(const SkPaint& paint, TextFlags*) SK_OVERRIDE {
|
| - return true;
|
| + return false;
|
| }
|
| // TODO: allow this call to return failure, or move to SkBitmapDevice only.
|
| virtual const SkBitmap& onAccessBitmap() SK_OVERRIDE {
|
| @@ -199,45 +200,6 @@
|
| typedef SkBaseDevice INHERITED;
|
| };
|
|
|
| -class NoSaveLayerCanvas : public SkCanvas {
|
| -public:
|
| - NoSaveLayerCanvas(SkBaseDevice* device) : INHERITED(device) {}
|
| -
|
| - // turn saveLayer() into save() for speed, should not affect correctness.
|
| - virtual int saveLayer(const SkRect* bounds, const SkPaint* paint,
|
| - SaveFlags flags) SK_OVERRIDE {
|
| -
|
| - // Like SkPictureRecord, we don't want to create layers, but we do need
|
| - // to respect the save and (possibly) its rect-clip.
|
| -
|
| - int count = this->INHERITED::save(flags);
|
| - if (bounds) {
|
| - this->INHERITED::clipRectBounds(bounds, flags, NULL);
|
| - }
|
| - return count;
|
| - }
|
| -
|
| - // disable aa for speed
|
| - virtual bool clipRect(const SkRect& rect, SkRegion::Op op,
|
| - bool doAA) SK_OVERRIDE {
|
| - return this->INHERITED::clipRect(rect, op, false);
|
| - }
|
| -
|
| - // for speed, just respect the bounds, and disable AA. May give us a few
|
| - // false positives and negatives.
|
| - virtual bool clipPath(const SkPath& path, SkRegion::Op op,
|
| - bool doAA) SK_OVERRIDE {
|
| - return this->updateClipConservativelyUsingBounds(path.getBounds(), op, path.isInverseFillType());
|
| - }
|
| - virtual bool clipRRect(const SkRRect& rrect, SkRegion::Op op,
|
| - bool doAA) SK_OVERRIDE {
|
| - return this->updateClipConservativelyUsingBounds(rrect.getBounds(), op, false);
|
| - }
|
| -
|
| -private:
|
| - typedef SkCanvas INHERITED;
|
| -};
|
| -
|
| SkData* SkPictureUtils::GatherPixelRefs(SkPicture* pict, const SkRect& area) {
|
| if (NULL == pict) {
|
| return NULL;
|
| @@ -254,7 +216,7 @@
|
| PixelRefSet prset(&array);
|
|
|
| GatherPixelRefDevice device(pict->width(), pict->height(), &prset);
|
| - NoSaveLayerCanvas canvas(&device);
|
| + SkNoSaveLayerCanvas canvas(&device);
|
|
|
| canvas.clipRect(area, SkRegion::kIntersect_Op, false);
|
| canvas.drawPicture(*pict);
|
|
|