OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2008 The Android Open Source Project | 3 * Copyright 2008 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
(...skipping 1399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1410 } | 1410 } |
1411 | 1411 |
1412 SkIRect ir; | 1412 SkIRect ir; |
1413 ir.set(0, 0, device->width(), device->height()); | 1413 ir.set(0, 0, device->width(), device->height()); |
1414 SkRasterClip tmpClip(ir); | 1414 SkRasterClip tmpClip(ir); |
1415 | 1415 |
1416 SkClipStack::B2TIter iter(fClipStack); | 1416 SkClipStack::B2TIter iter(fClipStack); |
1417 const SkClipStack::Element* element; | 1417 const SkClipStack::Element* element; |
1418 while ((element = iter.next()) != NULL) { | 1418 while ((element = iter.next()) != NULL) { |
1419 switch (element->getType()) { | 1419 switch (element->getType()) { |
1420 case SkClipStack::Element::kPath_Type: | |
1421 clipPathHelper(this, | |
1422 &tmpClip, | |
1423 element->getPath(), | |
1424 element->getOp(), | |
1425 element->isAA()); | |
1426 break; | |
1427 case SkClipStack::Element::kRect_Type: | 1420 case SkClipStack::Element::kRect_Type: |
1428 element->getRect().round(&ir); | 1421 element->getRect().round(&ir); |
1429 tmpClip.op(ir, element->getOp()); | 1422 tmpClip.op(ir, element->getOp()); |
1430 break; | 1423 break; |
1431 case SkClipStack::Element::kEmpty_Type: | 1424 case SkClipStack::Element::kEmpty_Type: |
1432 tmpClip.setEmpty(); | 1425 tmpClip.setEmpty(); |
1433 break; | 1426 break; |
| 1427 default: { |
| 1428 SkPath path; |
| 1429 element->asPath(&path); |
| 1430 clipPathHelper(this, |
| 1431 &tmpClip, |
| 1432 path, |
| 1433 element->getOp(), |
| 1434 element->isAA()); |
| 1435 break; |
| 1436 } |
1434 } | 1437 } |
1435 } | 1438 } |
1436 | 1439 |
1437 #if 0 // enable this locally for testing | 1440 #if 0 // enable this locally for testing |
1438 // now compare against the current rgn | 1441 // now compare against the current rgn |
1439 const SkRegion& rgn = this->getTotalClip(); | 1442 const SkRegion& rgn = this->getTotalClip(); |
1440 SkASSERT(rgn == tmpClip); | 1443 SkASSERT(rgn == tmpClip); |
1441 #endif | 1444 #endif |
1442 } | 1445 } |
1443 #endif | 1446 #endif |
(...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2224 return *paint; | 2227 return *paint; |
2225 } | 2228 } |
2226 | 2229 |
2227 const SkRegion& SkCanvas::LayerIter::clip() const { return fImpl->getClip(); } | 2230 const SkRegion& SkCanvas::LayerIter::clip() const { return fImpl->getClip(); } |
2228 int SkCanvas::LayerIter::x() const { return fImpl->getX(); } | 2231 int SkCanvas::LayerIter::x() const { return fImpl->getX(); } |
2229 int SkCanvas::LayerIter::y() const { return fImpl->getY(); } | 2232 int SkCanvas::LayerIter::y() const { return fImpl->getY(); } |
2230 | 2233 |
2231 /////////////////////////////////////////////////////////////////////////////// | 2234 /////////////////////////////////////////////////////////////////////////////// |
2232 | 2235 |
2233 SkCanvas::ClipVisitor::~ClipVisitor() { } | 2236 SkCanvas::ClipVisitor::~ClipVisitor() { } |
OLD | NEW |