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

Unified Diff: skia/ext/analysis_canvas.h

Issue 63443003: cc: Combine analysis and raster (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: skia/ext/analysis_canvas.h
diff --git a/skia/ext/analysis_canvas.h b/skia/ext/analysis_canvas.h
index 78d72ff9381ff5a5974708e81ac47ab152915777..b03a70bd069055bc2a14184f3891c13a23eafb23 100644
--- a/skia/ext/analysis_canvas.h
+++ b/skia/ext/analysis_canvas.h
@@ -9,29 +9,23 @@
#include "third_party/skia/include/core/SkBitmapDevice.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkPicture.h"
+#include "ui/gfx/rect.h"
namespace skia {
class AnalysisDevice;
-// Does not render anything, but gathers statistics about a region
-// (specified as a clip rectangle) of an SkPicture as the picture is
-// played back through it.
-// To use: create a SkBitmap with kNo_Config, create an AnalysisDevice
-// using that bitmap, and create an AnalysisCanvas using the device.
-// Play a picture into the canvas, and then check result.
-class SK_API AnalysisCanvas : public SkCanvas, public SkDrawPictureCallback {
+// Gathers statistics about a region of an SkPicture as the picture is played
enne (OOO) 2013/11/07 00:58:18 cc is the only user of AnalysisCanvas, so I change
+// back and rastered through it.
+class SK_API AnalysisCanvas : public SkCanvas {
public:
- AnalysisCanvas(AnalysisDevice*);
+ AnalysisCanvas(AnalysisDevice* device);
reveman 2013/11/07 15:36:31 explicit?
enne (OOO) 2013/11/07 22:13:50 Done.
virtual ~AnalysisCanvas();
// Returns true when a SkColor can be used to represent result.
bool GetColorIfSolid(SkColor* color) const;
bool HasText() const;
- // SkDrawPictureCallback override.
- virtual bool abortDrawing() OVERRIDE;
-
// SkCanvas overrides.
virtual bool clipRect(const SkRect& rect,
SkRegion::Op op = SkRegion::kIntersect_Op,
@@ -63,7 +57,8 @@ class SK_API AnalysisCanvas : public SkCanvas, public SkDrawPictureCallback {
// to be derived from SkBaseDevice (rather than SkBitmapDevice)
class SK_API AnalysisDevice : public SkBitmapDevice {
public:
- AnalysisDevice(const SkBitmap& bitmap);
+ // |analysis_rect| is in SkCanvas space.
enne (OOO) 2013/11/07 00:58:18 Previously the analyze step would size the SkBitma
Stephen White 2013/11/07 18:14:22 From the Skia side, SkCanvas space is not really d
enne (OOO) 2013/11/07 22:13:50 Ok, so this should say device space to be what I i
+ AnalysisDevice(const SkBitmap& bitmap, gfx::Rect analysis_rect);
virtual ~AnalysisDevice();
bool GetColorIfSolid(SkColor* color) const;
@@ -72,6 +67,8 @@ class SK_API AnalysisDevice : public SkBitmapDevice {
void SetForceNotSolid(bool flag);
void SetForceNotTransparent(bool flag);
+ gfx::Rect AnalysisRect() const { return analysis_rect_; }
+
protected:
// SkBaseDevice overrides.
virtual void clear(SkColor color) OVERRIDE;
@@ -154,6 +151,11 @@ class SK_API AnalysisDevice : public SkBitmapDevice {
private:
typedef SkBitmapDevice INHERITED;
+ void AnalyzeDrawRect(const SkDraw& draw,
+ const SkRect& rect,
+ const SkPaint& paint);
+
+ gfx::Rect analysis_rect_;
bool is_forced_not_solid_;
bool is_forced_not_transparent_;
bool is_solid_color_;

Powered by Google App Engine
This is Rietveld 408576698