Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: src/core/SkCanvas.cpp

Issue 269693003: SkClipStack::Element tweaks. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Rebased Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « include/core/SkClipStack.h ('k') | src/core/SkClipStack.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2008 The Android Open Source Project 2 * Copyright 2008 The Android Open Source Project
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 8
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkBitmapDevice.h" 10 #include "SkBitmapDevice.h"
(...skipping 1648 matching lines...) Expand 10 before | Expand all | Expand 10 after
1659 } 1659 }
1660 } 1660 }
1661 } 1661 }
1662 } 1662 }
1663 #endif 1663 #endif
1664 1664
1665 void SkCanvas::replayClips(ClipVisitor* visitor) const { 1665 void SkCanvas::replayClips(ClipVisitor* visitor) const {
1666 SkClipStack::B2TIter iter(fClipStack); 1666 SkClipStack::B2TIter iter(fClipStack);
1667 const SkClipStack::Element* element; 1667 const SkClipStack::Element* element;
1668 1668
1669 static const SkRect kEmpty = { 0, 0, 0, 0 };
1670 while ((element = iter.next()) != NULL) { 1669 while ((element = iter.next()) != NULL) {
1671 switch (element->getType()) { 1670 element->replay(visitor);
1672 case SkClipStack::Element::kPath_Type:
1673 visitor->clipPath(element->getPath(), element->getOp(), element- >isAA());
1674 break;
1675 case SkClipStack::Element::kRRect_Type:
1676 visitor->clipRRect(element->getRRect(), element->getOp(), elemen t->isAA());
1677 break;
1678 case SkClipStack::Element::kRect_Type:
1679 visitor->clipRect(element->getRect(), element->getOp(), element- >isAA());
1680 break;
1681 case SkClipStack::Element::kEmpty_Type:
1682 visitor->clipRect(kEmpty, SkRegion::kIntersect_Op, false);
1683 break;
1684 }
1685 } 1671 }
1686 } 1672 }
1687 1673
1688 /////////////////////////////////////////////////////////////////////////////// 1674 ///////////////////////////////////////////////////////////////////////////////
1689 1675
1690 bool SkCanvas::isClipEmpty() const { 1676 bool SkCanvas::isClipEmpty() const {
1691 return fMCRec->fRasterClip->isEmpty(); 1677 return fMCRec->fRasterClip->isEmpty();
1692 } 1678 }
1693 1679
1694 bool SkCanvas::isClipRect() const { 1680 bool SkCanvas::isClipRect() const {
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after
2549 } 2535 }
2550 return *paint; 2536 return *paint;
2551 } 2537 }
2552 2538
2553 const SkRegion& SkCanvas::LayerIter::clip() const { return fImpl->getClip(); } 2539 const SkRegion& SkCanvas::LayerIter::clip() const { return fImpl->getClip(); }
2554 int SkCanvas::LayerIter::x() const { return fImpl->getX(); } 2540 int SkCanvas::LayerIter::x() const { return fImpl->getX(); }
2555 int SkCanvas::LayerIter::y() const { return fImpl->getY(); } 2541 int SkCanvas::LayerIter::y() const { return fImpl->getY(); }
2556 2542
2557 /////////////////////////////////////////////////////////////////////////////// 2543 ///////////////////////////////////////////////////////////////////////////////
2558 2544
2559 SkCanvas::ClipVisitor::~ClipVisitor() { } 2545 SkCanvasClipVisitor::~SkCanvasClipVisitor() { }
2560 2546
2561 /////////////////////////////////////////////////////////////////////////////// 2547 ///////////////////////////////////////////////////////////////////////////////
2562 2548
2563 static bool supported_for_raster_canvas(const SkImageInfo& info) { 2549 static bool supported_for_raster_canvas(const SkImageInfo& info) {
2564 switch (info.alphaType()) { 2550 switch (info.alphaType()) {
2565 case kPremul_SkAlphaType: 2551 case kPremul_SkAlphaType:
2566 case kOpaque_SkAlphaType: 2552 case kOpaque_SkAlphaType:
2567 break; 2553 break;
2568 default: 2554 default:
2569 return false; 2555 return false;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2602 if (!supported_for_raster_canvas(info)) { 2588 if (!supported_for_raster_canvas(info)) {
2603 return NULL; 2589 return NULL;
2604 } 2590 }
2605 2591
2606 SkBitmap bitmap; 2592 SkBitmap bitmap;
2607 if (!bitmap.installPixels(info, pixels, rowBytes)) { 2593 if (!bitmap.installPixels(info, pixels, rowBytes)) {
2608 return NULL; 2594 return NULL;
2609 } 2595 }
2610 return SkNEW_ARGS(SkCanvas, (bitmap)); 2596 return SkNEW_ARGS(SkCanvas, (bitmap));
2611 } 2597 }
OLDNEW
« no previous file with comments | « include/core/SkClipStack.h ('k') | src/core/SkClipStack.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698