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

Side by Side Diff: include/core/SkCanvas.h

Issue 778563002: Revert "Change clear() to respect the clip" (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « include/core/SkBitmapDevice.h ('k') | include/core/SkDevice.h » ('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 2006 The Android Open Source Project 2 * Copyright 2006 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 #ifndef SkCanvas_DEFINED 8 #ifndef SkCanvas_DEFINED
9 #define SkCanvas_DEFINED 9 #define SkCanvas_DEFINED
10 10
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 @param mode the mode to apply the color in (defaults to SrcOver) 612 @param mode the mode to apply the color in (defaults to SrcOver)
613 */ 613 */
614 void drawARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b, 614 void drawARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b,
615 SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode); 615 SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode);
616 616
617 /** Fill the entire canvas' bitmap (restricted to the current clip) with the 617 /** Fill the entire canvas' bitmap (restricted to the current clip) with the
618 specified color and mode. 618 specified color and mode.
619 @param color the color to draw with 619 @param color the color to draw with
620 @param mode the mode to apply the color in (defaults to SrcOver) 620 @param mode the mode to apply the color in (defaults to SrcOver)
621 */ 621 */
622 void drawColor(SkColor color, SkXfermode::Mode mode = SkXfermode::kSrcOver_M ode); 622 void drawColor(SkColor color,
623 SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode);
623 624
624 // TODO: remove virtual when chrome subclass stop overriding this. 625 /**
625 virtual void clear(SkColor color) { 626 * This erases the entire drawing surface to the specified color,
626 this->drawColor(color, SkXfermode::kSrc_Mode); 627 * irrespective of the clip. It does not blend with the previous pixels,
627 } 628 * but always overwrites them.
629 *
630 * It is roughly equivalent to the following:
631 * canvas.save();
632 * canvas.clipRect(hugeRect, kReplace_Op);
633 * paint.setColor(color);
634 * paint.setXfermodeMode(kSrc_Mode);
635 * canvas.drawPaint(paint);
636 * canvas.restore();
637 * though it is almost always much more efficient.
638 */
639 virtual void clear(SkColor);
628 640
629 /** 641 /**
630 * This makes the contents of the canvas undefined. Subsequent calls that 642 * This makes the contents of the canvas undefined. Subsequent calls that
631 * require reading the canvas contents will produce undefined results. Examp les 643 * require reading the canvas contents will produce undefined results. Examp les
632 * include blending and readPixels. The actual implementation is backend- 644 * include blending and readPixels. The actual implementation is backend-
633 * dependent and one legal implementation is to do nothing. Like clear(), th is 645 * dependent and one legal implementation is to do nothing. Like clear(), th is
634 * ignores the clip. 646 * ignores the clip.
635 * 647 *
636 * This function should only be called if the caller intends to subsequently 648 * This function should only be called if the caller intends to subsequently
637 * draw to the canvas. The canvas may do real work at discard() time in orde r 649 * draw to the canvas. The canvas may do real work at discard() time in orde r
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after
1536 1548
1537 class SkCanvasClipVisitor { 1549 class SkCanvasClipVisitor {
1538 public: 1550 public:
1539 virtual ~SkCanvasClipVisitor(); 1551 virtual ~SkCanvasClipVisitor();
1540 virtual void clipRect(const SkRect&, SkRegion::Op, bool antialias) = 0; 1552 virtual void clipRect(const SkRect&, SkRegion::Op, bool antialias) = 0;
1541 virtual void clipRRect(const SkRRect&, SkRegion::Op, bool antialias) = 0; 1553 virtual void clipRRect(const SkRRect&, SkRegion::Op, bool antialias) = 0;
1542 virtual void clipPath(const SkPath&, SkRegion::Op, bool antialias) = 0; 1554 virtual void clipPath(const SkPath&, SkRegion::Op, bool antialias) = 0;
1543 }; 1555 };
1544 1556
1545 #endif 1557 #endif
OLDNEW
« no previous file with comments | « include/core/SkBitmapDevice.h ('k') | include/core/SkDevice.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698