summaryrefslogtreecommitdiffstats
path: root/cc/test/fake_content_layer_client.cc
diff options
context:
space:
mode:
authorfmalita <fmalita@chromium.org>2015-09-09 12:47:31 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-09 19:48:22 +0000
commit7913ee5c052986141a1947428abf7a37cc053026 (patch)
tree2ae967558989303132151e55c59f70fcfcdb1523 /cc/test/fake_content_layer_client.cc
parent84fec63dbc6667f4c1e03eed4b6f11b4c9865a40 (diff)
downloadchromium_src-7913ee5c052986141a1947428abf7a37cc053026.zip
chromium_src-7913ee5c052986141a1947428abf7a37cc053026.tar.gz
chromium_src-7913ee5c052986141a1947428abf7a37cc053026.tar.bz2
Convert pixel_ref_map -> discardable_image_map
As blink now only creates discardable images (not discardable bitmaps/pixelrefs, we need to track the images. (based on reed's http://crrev.com/1318323003) BUG=527246 R=reed@google.com,vmpstr@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1314353005 Cr-Commit-Position: refs/heads/master@{#347985}
Diffstat (limited to 'cc/test/fake_content_layer_client.cc')
-rw-r--r--cc/test/fake_content_layer_client.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/cc/test/fake_content_layer_client.cc b/cc/test/fake_content_layer_client.cc
index 0cbb92a..77fa2d0 100644
--- a/cc/test/fake_content_layer_client.cc
+++ b/cc/test/fake_content_layer_client.cc
@@ -28,6 +28,18 @@ FakeContentLayerClient::BitmapData::BitmapData(const SkBitmap& bitmap,
FakeContentLayerClient::BitmapData::~BitmapData() {
}
+FakeContentLayerClient::ImageData::ImageData(const SkImage* img,
+ const gfx::Point& point,
+ const SkPaint& paint)
+ : image(skia::SharePtr(img)), point(point), paint(paint) {}
+
+FakeContentLayerClient::ImageData::ImageData(const SkImage* img,
+ const gfx::Transform& transform,
+ const SkPaint& paint)
+ : image(skia::SharePtr(img)), transform(transform), paint(paint) {}
+
+FakeContentLayerClient::ImageData::~ImageData() {}
+
FakeContentLayerClient::FakeContentLayerClient()
: fill_with_nonsolid_color_(false),
last_canvas_(nullptr),
@@ -57,6 +69,12 @@ void FakeContentLayerClient::PaintContents(
canvas->drawBitmap(it->bitmap, it->point.x(), it->point.y(), &it->paint);
}
+ for (ImageVector::const_iterator it = draw_images_.begin();
+ it != draw_images_.end(); ++it) {
+ canvas->drawImage(it->image.get(), it->point.x(), it->point.y(),
+ &it->paint);
+ }
+
if (fill_with_nonsolid_color_) {
gfx::Rect draw_rect = paint_rect;
bool red = true;
@@ -113,6 +131,24 @@ FakeContentLayerClient::PaintContentsToDisplayList(
}
}
+ for (ImageVector::const_iterator it = draw_images_.begin();
+ it != draw_images_.end(); ++it) {
+ if (!it->transform.IsIdentity()) {
+ auto* item = display_list->CreateAndAppendItem<TransformDisplayItem>();
+ item->SetNew(it->transform);
+ }
+ canvas = skia::SharePtr(
+ recorder.beginRecording(it->image->width(), it->image->height()));
+ canvas->drawImage(it->image.get(), it->point.x(), it->point.y(),
+ &it->paint);
+ picture = skia::AdoptRef(recorder.endRecordingAsPicture());
+ auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>();
+ item->SetNew(picture.Pass());
+ if (!it->transform.IsIdentity()) {
+ display_list->CreateAndAppendItem<EndTransformDisplayItem>();
+ }
+ }
+
if (fill_with_nonsolid_color_) {
gfx::Rect draw_rect = clip;
bool red = true;