| Index: cc/resources/picture.cc
|
| diff --git a/cc/resources/picture.cc b/cc/resources/picture.cc
|
| index de6ff93506f7a85ac2ed7bbaae4f8000dcc97fcd..d9b45df74b31688f1e6af4fe5656d5300b1a98a2 100644
|
| --- a/cc/resources/picture.cc
|
| +++ b/cc/resources/picture.cc
|
| @@ -273,17 +273,23 @@ void Picture::Record(ContentLayerClient* painter,
|
| &factory,
|
| SkPicture::kUsePathBoundsForClip_RecordingFlag));
|
|
|
| + ContentLayerClient::GraphicsContextStatus graphics_context_status =
|
| + ContentLayerClient::GRAPHICS_CONTEXT_ENABLED;
|
| +
|
| switch (recording_mode) {
|
| case RECORD_NORMALLY:
|
| - // Already setup for normal recording
|
| + // Already setup for normal recording.
|
| break;
|
| case RECORD_WITH_SK_NULL_CANVAS:
|
| canvas = skia::AdoptRef(SkCreateNullCanvas());
|
| break;
|
| case RECORD_WITH_PAINTING_DISABLED:
|
| - // Blink's GraphicsContext will disable painting when given a NULL
|
| - // canvas.
|
| - canvas.clear();
|
| + // We pass a disable flag through the paint calls when perfromance
|
| + // testing (the only time this case should ever arise) when we want to
|
| + // prevent the Blink GraphicsContext object from consuming any compute
|
| + // time.
|
| + canvas = skia::AdoptRef(SkCreateNullCanvas());
|
| + graphics_context_status = ContentLayerClient::GRAPHICS_CONTEXT_DISABLED;
|
| break;
|
| case RECORD_WITH_SKRECORD:
|
| recording.reset(new EXPERIMENTAL::SkRecording(layer_rect_.width(),
|
| @@ -294,23 +300,21 @@ void Picture::Record(ContentLayerClient* painter,
|
| NOTREACHED();
|
| }
|
|
|
| - if (canvas) {
|
| - canvas->save();
|
| - canvas->translate(SkFloatToScalar(-layer_rect_.x()),
|
| - SkFloatToScalar(-layer_rect_.y()));
|
| + canvas->save();
|
| + canvas->translate(SkFloatToScalar(-layer_rect_.x()),
|
| + SkFloatToScalar(-layer_rect_.y()));
|
|
|
| - SkRect layer_skrect = SkRect::MakeXYWH(layer_rect_.x(),
|
| - layer_rect_.y(),
|
| - layer_rect_.width(),
|
| - layer_rect_.height());
|
| - canvas->clipRect(layer_skrect);
|
| - }
|
| + SkRect layer_skrect = SkRect::MakeXYWH(layer_rect_.x(),
|
| + layer_rect_.y(),
|
| + layer_rect_.width(),
|
| + layer_rect_.height());
|
| + canvas->clipRect(layer_skrect);
|
|
|
| gfx::RectF opaque_layer_rect;
|
| - painter->PaintContents(canvas.get(), layer_rect_, &opaque_layer_rect);
|
| + painter->PaintContents(
|
| + canvas.get(), layer_rect_, &opaque_layer_rect, graphics_context_status);
|
|
|
| - if (canvas)
|
| - canvas->restore();
|
| + canvas->restore();
|
| picture_ = skia::AdoptRef(recorder.endRecording());
|
| DCHECK(picture_);
|
|
|
|
|