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_; |