Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(276)

Unified Diff: services/gfx/compositor/render/render_frame.h

Issue 1749063002: Mozart: Improve internal scene graph representation. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-0
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: services/gfx/compositor/render/render_frame.h
diff --git a/services/gfx/compositor/render/render_frame.h b/services/gfx/compositor/render/render_frame.h
index 21cdb77834c50c4ad828e5487bc61d0a818f295a..f9cf8386f5425046eb651c9b9bf43b50b05ce48b 100644
--- a/services/gfx/compositor/render/render_frame.h
+++ b/services/gfx/compositor/render/render_frame.h
@@ -8,40 +8,35 @@
#include <memory>
#include "base/macros.h"
-#include "mojo/services/gfx/composition/interfaces/hit_tests.mojom.h"
#include "mojo/services/gfx/composition/interfaces/scheduling.mojom.h"
+#include "skia/ext/refptr.h"
#include "third_party/skia/include/core/SkRect.h"
class SkCanvas;
-struct SkPoint;
+class SkPicture;
namespace compositor {
-class RenderLayer;
-
-// Describes a sequence of drawing commands to be evaluated as a single pass.
-// Frames are introduced into the render frame at points where blending must
-// occur or where portions of a scene graph may be drawn once into a temporary
-// buffer and used many times.
+// Describes a frame to be rendered.
//
// Render objects are thread-safe, immutable, and reference counted via
// std::shared_ptr. They have no direct references to the scene graph.
class RenderFrame {
public:
- RenderFrame(const std::shared_ptr<RenderLayer>& root_layer,
+ RenderFrame(const skia::RefPtr<SkPicture>& picture,
const SkRect& viewport,
const mojo::gfx::composition::FrameInfo& frame_info);
~RenderFrame();
static std::shared_ptr<RenderFrame> Create(
- const std::shared_ptr<RenderLayer>& root_layer,
+ const skia::RefPtr<SkPicture>& picture,
const SkRect& viewport,
const mojo::gfx::composition::FrameInfo& frame_info) {
- return std::make_shared<RenderFrame>(root_layer, viewport, frame_info);
+ return std::make_shared<RenderFrame>(picture, viewport, frame_info);
}
- // Gets the root layer of the frame.
- const std::shared_ptr<RenderLayer>& root_layer() const { return root_layer_; }
+ // Gets the underlying picture to rasterize.
+ const skia::RefPtr<SkPicture>& picture() const { return picture_; }
// Gets the frame's viewport.
const SkRect& viewport() const { return viewport_; }
@@ -54,13 +49,10 @@ class RenderFrame {
// Paints the frame to a canvas.
void Paint(SkCanvas* canvas) const;
- // Performs a hit test on the content of the frame.
- mojo::gfx::composition::HitTestResultPtr HitTest(const SkPoint& point) const;
-
private:
friend class RenderFrameBuilder;
- std::shared_ptr<RenderLayer> root_layer_;
+ skia::RefPtr<SkPicture> picture_;
SkRect viewport_;
mojo::gfx::composition::FrameInfo frame_info_;

Powered by Google App Engine
This is Rietveld 408576698