OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
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 #include "SkPaintFilterCanvas.h" | 8 #include "SkPaintFilterCanvas.h" |
9 | 9 |
10 #include "SkPaint.h" | 10 #include "SkPaint.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 } | 23 } |
24 | 24 |
25 const SkPaint* paint() const { return fLazyPaint.getMaybeNull(); } | 25 const SkPaint* paint() const { return fLazyPaint.getMaybeNull(); } |
26 | 26 |
27 private: | 27 private: |
28 SkTLazy<SkPaint> fLazyPaint; | 28 SkTLazy<SkPaint> fLazyPaint; |
29 }; | 29 }; |
30 | 30 |
31 SkPaintFilterCanvas::SkPaintFilterCanvas(int width, int height) : INHERITED(widt
h, height) { } | 31 SkPaintFilterCanvas::SkPaintFilterCanvas(int width, int height) : INHERITED(widt
h, height) { } |
32 | 32 |
| 33 SkPaintFilterCanvas::SkPaintFilterCanvas(SkCanvas *canvas) |
| 34 : INHERITED(canvas->imageInfo().width(), canvas->imageInfo().height()) { |
| 35 |
| 36 // Transfer matrix & clip state before adding the target canvas. |
| 37 SkIRect devClip; |
| 38 canvas->getClipDeviceBounds(&devClip); |
| 39 this->clipRect(SkRect::Make(devClip)); |
| 40 this->setMatrix(canvas->getTotalMatrix()); |
| 41 |
| 42 this->addCanvas(canvas); |
| 43 } |
| 44 |
33 void SkPaintFilterCanvas::onDrawPaint(const SkPaint& paint) { | 45 void SkPaintFilterCanvas::onDrawPaint(const SkPaint& paint) { |
34 AutoPaintFilter apf(this, kPaint_Type, paint); | 46 AutoPaintFilter apf(this, kPaint_Type, paint); |
35 this->INHERITED::onDrawPaint(*apf.paint()); | 47 this->INHERITED::onDrawPaint(*apf.paint()); |
36 } | 48 } |
37 | 49 |
38 void SkPaintFilterCanvas::onDrawPoints(PointMode mode, size_t count, const SkPoi
nt pts[], | 50 void SkPaintFilterCanvas::onDrawPoints(PointMode mode, size_t count, const SkPoi
nt pts[], |
39 const SkPaint& paint) { | 51 const SkPaint& paint) { |
40 AutoPaintFilter apf(this, kPoint_Type, paint); | 52 AutoPaintFilter apf(this, kPoint_Type, paint); |
41 this->INHERITED::onDrawPoints(mode, count, pts, *apf.paint()); | 53 this->INHERITED::onDrawPoints(mode, count, pts, *apf.paint()); |
42 } | 54 } |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 const SkMatrix* matrix, const SkPaint
& paint) { | 161 const SkMatrix* matrix, const SkPaint
& paint) { |
150 AutoPaintFilter apf(this, kText_Type, paint); | 162 AutoPaintFilter apf(this, kText_Type, paint); |
151 this->INHERITED::onDrawTextOnPath(text, byteLength, path, matrix, *apf.paint
()); | 163 this->INHERITED::onDrawTextOnPath(text, byteLength, path, matrix, *apf.paint
()); |
152 } | 164 } |
153 | 165 |
154 void SkPaintFilterCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkS
calar y, | 166 void SkPaintFilterCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkS
calar y, |
155 const SkPaint& paint) { | 167 const SkPaint& paint) { |
156 AutoPaintFilter apf(this, kTextBlob_Type, paint); | 168 AutoPaintFilter apf(this, kTextBlob_Type, paint); |
157 this->INHERITED::onDrawTextBlob(blob, x, y, *apf.paint()); | 169 this->INHERITED::onDrawTextBlob(blob, x, y, *apf.paint()); |
158 } | 170 } |
OLD | NEW |