| Index: services/gfx/compositor/graph/snapshot.cc
|
| diff --git a/services/gfx/compositor/graph/snapshot.cc b/services/gfx/compositor/graph/snapshot.cc
|
| index 66f44e987422516606efa5d2465250f974517fa9..8371cf7a472999a87420bab68cdc8fdcda2bb15a 100644
|
| --- a/services/gfx/compositor/graph/snapshot.cc
|
| +++ b/services/gfx/compositor/graph/snapshot.cc
|
| @@ -5,9 +5,11 @@
|
| #include "services/gfx/compositor/graph/snapshot.h"
|
|
|
| #include "base/logging.h"
|
| +#include "mojo/skia/type_converters.h"
|
| #include "services/gfx/compositor/graph/scene_content.h"
|
| #include "services/gfx/compositor/graph/scene_def.h"
|
| #include "services/gfx/compositor/render/render_frame.h"
|
| +#include "third_party/skia/include/core/SkMatrix.h"
|
| #include "third_party/skia/include/core/SkPictureRecorder.h"
|
| #include "third_party/skia/include/core/SkRect.h"
|
|
|
| @@ -25,21 +27,26 @@ std::shared_ptr<RenderFrame> Snapshot::CreateFrame(
|
| const mojo::Rect& viewport,
|
| const mojo::gfx::composition::FrameInfo& frame_info) const {
|
| DCHECK(!is_blocked());
|
| + DCHECK(root_scene_content_);
|
|
|
| - SkRect sk_viewport =
|
| - SkRect::MakeXYWH(viewport.x, viewport.y, viewport.width, viewport.height);
|
| + SkRect sk_viewport = viewport.To<SkRect>();
|
| SkPictureRecorder recorder;
|
| recorder.beginRecording(sk_viewport);
|
| -
|
| - const NodeDef* root_node = root_scene_content_->GetRootNodeIfExists();
|
| - DCHECK(root_node); // otherwise would have failed to snapshot
|
| - root_node->RecordPicture(root_scene_content_.get(), this,
|
| - recorder.getRecordingCanvas());
|
| -
|
| + root_scene_content_->RecordPicture(this, recorder.getRecordingCanvas());
|
| return RenderFrame::Create(skia::AdoptRef(recorder.endRecordingAsPicture()),
|
| sk_viewport, frame_info);
|
| }
|
|
|
| +void Snapshot::HitTest(const mojo::Point& point,
|
| + mojo::gfx::composition::HitTestResult* result) const {
|
| + DCHECK(result);
|
| + DCHECK(!is_blocked());
|
| + DCHECK(root_scene_content_);
|
| +
|
| + root_scene_content_->HitTest(this, point.To<SkPoint>(), SkMatrix::I(),
|
| + &result->root);
|
| +}
|
| +
|
| bool Snapshot::IsNodeBlocked(const NodeDef* node) const {
|
| DCHECK(!is_blocked());
|
|
|
|
|