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

Unified Diff: services/ui/ws/server_window_compositor_frame_sink_manager.h

Issue 2453013002: Mus: Remove dependency on ServerWindowCompositorFrameSink from FrameGenerator (Closed)
Patch Set: Delete may_contain_video Created 4 years, 2 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/ui/ws/server_window_compositor_frame_sink_manager.h
diff --git a/services/ui/ws/server_window_compositor_frame_sink_manager.h b/services/ui/ws/server_window_compositor_frame_sink_manager.h
index 271b0131654e3f85732010c836dbfafa88f29044..305660f836b3c74025ea92d345567ef259e54e57 100644
--- a/services/ui/ws/server_window_compositor_frame_sink_manager.h
+++ b/services/ui/ws/server_window_compositor_frame_sink_manager.h
@@ -21,6 +21,19 @@ class ServerWindow;
class ServerWindowCompositorFrameSink;
class ServerWindowCompositorFrameSinkManagerTestApi;
+struct CompositorFrameSinkData {
+ CompositorFrameSinkData();
+ CompositorFrameSinkData(CompositorFrameSinkData&& other);
+ ~CompositorFrameSinkData();
+
+ CompositorFrameSinkData& operator=(CompositorFrameSinkData&& other);
+
+ cc::SurfaceId last_submitted_surface_id;
+ gfx::Size last_submitted_frame_size;
+ // TODO(fsamuel): This should be a mojo interface.
+ std::unique_ptr<ServerWindowCompositorFrameSink> compositor_frame_sink;
+};
+
// ServerWindowCompositorFrameSinkManager tracks the surfaces associated with a
// ServerWindow.
class ServerWindowCompositorFrameSinkManager {
@@ -47,6 +60,12 @@ class ServerWindowCompositorFrameSinkManager {
bool HasCompositorFrameSinkOfType(mojom::CompositorFrameSinkType type) const;
bool HasAnyCompositorFrameSink() const;
+ gfx::Size GetLastFrameSize(mojom::CompositorFrameSinkType type) const;
+ cc::SurfaceId GetLastSurfaceId(mojom::CompositorFrameSinkType type) const;
+ void SetLastSurfaceId(mojom::CompositorFrameSinkType type,
sadrul 2016/10/27 05:06:30 Since this also sets the size, how about SetLatest
Fady Samuel 2016/10/27 05:46:37 Done.
+ const cc::SurfaceId& surface_id,
+ const gfx::Size& frame_size);
sadrul 2016/10/27 05:06:30 nit: s/Last/Latest/ in these?
Fady Samuel 2016/10/27 05:46:37 Done.
+
cc::SurfaceManager* GetCompositorFrameSinkManager();
private:
@@ -61,8 +80,7 @@ class ServerWindowCompositorFrameSinkManager {
ServerWindow* window_;
using TypeToCompositorFrameSinkMap =
- std::map<mojom::CompositorFrameSinkType,
- std::unique_ptr<ServerWindowCompositorFrameSink>>;
+ std::map<mojom::CompositorFrameSinkType, CompositorFrameSinkData>;
TypeToCompositorFrameSinkMap type_to_compositor_frame_sink_map_;

Powered by Google App Engine
This is Rietveld 408576698