Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / skia / ext / pixel_ref_utils_unittest.cc
index 2bfbbbe..237bc60 100644 (file)
@@ -11,6 +11,7 @@
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkFlattenableBuffers.h"
+#include "third_party/skia/include/core/SkPictureRecorder.h"
 #include "third_party/skia/include/core/SkPixelRef.h"
 #include "third_party/skia/include/core/SkPoint.h"
 #include "third_party/skia/include/core/SkShader.h"
@@ -50,8 +51,11 @@ class TestDiscardableShader : public SkShader {
     return SkShader::kDefault_BitmapType;
   }
 
-  // Pure virtual implementaiton.
-  virtual void shadeSpan(int x, int y, SkPMColor[], int count) OVERRIDE {}
+  // not indended to return an actual context. Just need to supply this.
+  virtual size_t contextSize() const OVERRIDE {
+    return sizeof(SkShader::Context);
+  }
+
   SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(TestDiscardableShader);
 
  private:
@@ -69,12 +73,12 @@ void CreateBitmap(gfx::Size size, const char* uri, SkBitmap* bitmap) {
   bitmap->pixelRef()->setURI(uri);
 }
 
-SkCanvas* StartRecording(SkPicture* picture, gfx::Rect layer_rect) {
-  SkCanvas* canvas = picture->beginRecording(
+SkCanvas* StartRecording(SkPictureRecorder* recorder, gfx::Rect layer_rect) {
+  SkCanvas* canvas = recorder->beginRecording(
       layer_rect.width(),
       layer_rect.height(),
-      SkPicture::kUsePathBoundsForClip_RecordingFlag |
-          SkPicture::kOptimizeForClippedPlayback_RecordingFlag);
+      NULL,
+      SkPicture::kUsePathBoundsForClip_RecordingFlag);
 
   canvas->save();
   canvas->translate(-layer_rect.x(), -layer_rect.y());
@@ -84,9 +88,9 @@ SkCanvas* StartRecording(SkPicture* picture, gfx::Rect layer_rect) {
   return canvas;
 }
 
-void StopRecording(SkPicture* picture, SkCanvas* canvas) {
+SkPicture* StopRecording(SkPictureRecorder* recorder, SkCanvas* canvas) {
   canvas->restore();
-  picture->endRecording();
+  return recorder->endRecording();
 }
 
 }  // namespace
@@ -94,8 +98,8 @@ void StopRecording(SkPicture* picture, SkCanvas* canvas) {
 TEST(PixelRefUtilsTest, DrawPaint) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -116,7 +120,7 @@ TEST(PixelRefUtilsTest, DrawPaint) {
   canvas->clipRect(SkRect::MakeWH(100, 100));
   canvas->drawPaint(third_paint);
 
-  StopRecording(picture.get(), canvas);
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
 
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
@@ -133,8 +137,8 @@ TEST(PixelRefUtilsTest, DrawPaint) {
 TEST(PixelRefUtilsTest, DrawPoints) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -169,7 +173,7 @@ TEST(PixelRefUtilsTest, DrawPoints) {
   // (50, 55, 150, 145).
   canvas->drawPoints(SkCanvas::kPolygon_PointMode, 3, points, third_paint);
 
-  StopRecording(picture.get(), canvas);
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
 
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
@@ -186,8 +190,8 @@ TEST(PixelRefUtilsTest, DrawPoints) {
 TEST(PixelRefUtilsTest, DrawRect) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -217,6 +221,8 @@ TEST(PixelRefUtilsTest, DrawRect) {
   // (50, 50, 50, 50)
   canvas->drawRect(SkRect::MakeXYWH(0, 0, 100, 100), third_paint);
 
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
+
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
 
@@ -232,8 +238,8 @@ TEST(PixelRefUtilsTest, DrawRect) {
 TEST(PixelRefUtilsTest, DrawRRect) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -268,6 +274,8 @@ TEST(PixelRefUtilsTest, DrawRRect) {
   // (50, 50, 50, 50)
   canvas->drawRRect(rrect, third_paint);
 
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
+
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
 
@@ -283,8 +291,8 @@ TEST(PixelRefUtilsTest, DrawRRect) {
 TEST(PixelRefUtilsTest, DrawOval) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -318,6 +326,8 @@ TEST(PixelRefUtilsTest, DrawOval) {
   // (50, 50, 50, 50)
   canvas->drawRect(SkRect::MakeXYWH(0, 0, 100, 100), third_paint);
 
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
+
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
 
@@ -333,8 +343,8 @@ TEST(PixelRefUtilsTest, DrawOval) {
 TEST(PixelRefUtilsTest, DrawPath) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -360,7 +370,7 @@ TEST(PixelRefUtilsTest, DrawPath) {
 
   canvas->restore();
 
-  StopRecording(picture.get(), canvas);
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
 
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
@@ -375,8 +385,8 @@ TEST(PixelRefUtilsTest, DrawPath) {
 TEST(PixelRefUtilsTest, DrawBitmap) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   SkBitmap first;
   CreateBitmap(gfx::Size(50, 50), "discardable", &first);
@@ -414,7 +424,7 @@ TEST(PixelRefUtilsTest, DrawBitmap) {
   // At (0, 0), scaled by 5 and 6
   canvas->drawBitmap(fifth, 0, 0);
 
-  StopRecording(picture.get(), canvas);
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
 
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
@@ -436,8 +446,8 @@ TEST(PixelRefUtilsTest, DrawBitmap) {
 TEST(PixelRefUtilsTest, DrawBitmapRect) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   SkBitmap first;
   CreateBitmap(gfx::Size(50, 50), "discardable", &first);
@@ -468,7 +478,7 @@ TEST(PixelRefUtilsTest, DrawBitmapRect) {
 
   canvas->restore();
 
-  StopRecording(picture.get(), canvas);
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
 
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
@@ -487,8 +497,8 @@ TEST(PixelRefUtilsTest, DrawBitmapRect) {
 TEST(PixelRefUtilsTest, DrawSprite) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   SkBitmap first;
   CreateBitmap(gfx::Size(50, 50), "discardable", &first);
@@ -531,7 +541,7 @@ TEST(PixelRefUtilsTest, DrawSprite) {
   // (100, 100, 50, 50).
   canvas->drawSprite(fifth, 100, 100, &first_paint);
 
-  StopRecording(picture.get(), canvas);
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
 
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
@@ -554,8 +564,8 @@ TEST(PixelRefUtilsTest, DrawSprite) {
 TEST(PixelRefUtilsTest, DrawText) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -578,6 +588,8 @@ TEST(PixelRefUtilsTest, DrawText) {
   canvas->drawPosText("text", 4, points, first_paint);
   canvas->drawTextOnPath("text", 4, path, NULL, first_paint);
 
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
+
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);
 
@@ -587,8 +599,8 @@ TEST(PixelRefUtilsTest, DrawText) {
 TEST(PixelRefUtilsTest, DrawVertices) {
   gfx::Rect layer_rect(0, 0, 256, 256);
 
-  skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
-  SkCanvas* canvas = StartRecording(picture.get(), layer_rect);
+  SkPictureRecorder recorder;
+  SkCanvas* canvas = StartRecording(&recorder, layer_rect);
 
   TestDiscardableShader first_shader;
   SkPaint first_paint;
@@ -649,7 +661,7 @@ TEST(PixelRefUtilsTest, DrawVertices) {
                        3,
                        third_paint);
 
-  StopRecording(picture.get(), canvas);
+  skia::RefPtr<SkPicture> picture = skia::AdoptRef(StopRecording(&recorder, canvas));
 
   std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs;
   skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs);