| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef SERVICES_UI_WS_SERVER_WINDOW_COMPOSITOR_FRAME_SINK_MANAGER_H_ | 5 #ifndef SERVICES_UI_WS_SERVER_WINDOW_COMPOSITOR_FRAME_SINK_MANAGER_H_ |
| 6 #define SERVICES_UI_WS_SERVER_WINDOW_COMPOSITOR_FRAME_SINK_MANAGER_H_ | 6 #define SERVICES_UI_WS_SERVER_WINDOW_COMPOSITOR_FRAME_SINK_MANAGER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 CompositorFrameSinkData(CompositorFrameSinkData&& other); | 26 CompositorFrameSinkData(CompositorFrameSinkData&& other); |
| 27 ~CompositorFrameSinkData(); | 27 ~CompositorFrameSinkData(); |
| 28 | 28 |
| 29 CompositorFrameSinkData& operator=(CompositorFrameSinkData&& other); | 29 CompositorFrameSinkData& operator=(CompositorFrameSinkData&& other); |
| 30 | 30 |
| 31 cc::SurfaceId latest_submitted_surface_id; | 31 cc::SurfaceId latest_submitted_surface_id; |
| 32 gfx::Size latest_submitted_frame_size; | 32 gfx::Size latest_submitted_frame_size; |
| 33 cc::mojom::MojoCompositorFrameSinkPrivatePtr compositor_frame_sink; | 33 cc::mojom::MojoCompositorFrameSinkPrivatePtr compositor_frame_sink; |
| 34 cc::mojom::MojoCompositorFrameSinkPrivateRequest | 34 cc::mojom::MojoCompositorFrameSinkPrivateRequest |
| 35 pending_compositor_frame_sink_request; | 35 pending_compositor_frame_sink_request; |
| 36 cc::FrameSinkId frame_sink_id; |
| 36 }; | 37 }; |
| 37 | 38 |
| 38 // ServerWindowCompositorFrameSinkManager tracks the surfaces associated with a | 39 // ServerWindowCompositorFrameSinkManager tracks the surfaces associated with a |
| 39 // ServerWindow. | 40 // ServerWindow. |
| 40 // TODO(fsamuel): Delete this once window decorations are managed in the window | 41 // TODO(fsamuel): Delete this once window decorations are managed in the window |
| 41 // manager. | 42 // manager. |
| 42 class ServerWindowCompositorFrameSinkManager { | 43 class ServerWindowCompositorFrameSinkManager { |
| 43 public: | 44 public: |
| 44 explicit ServerWindowCompositorFrameSinkManager(ServerWindow* window); | 45 explicit ServerWindowCompositorFrameSinkManager(ServerWindow* window); |
| 45 ~ServerWindowCompositorFrameSinkManager(); | 46 ~ServerWindowCompositorFrameSinkManager(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 76 | 77 |
| 77 bool HasCompositorFrameSinkOfType(mojom::CompositorFrameSinkType type) const; | 78 bool HasCompositorFrameSinkOfType(mojom::CompositorFrameSinkType type) const; |
| 78 bool HasAnyCompositorFrameSink() const; | 79 bool HasAnyCompositorFrameSink() const; |
| 79 | 80 |
| 80 gfx::Size GetLatestFrameSize(mojom::CompositorFrameSinkType type) const; | 81 gfx::Size GetLatestFrameSize(mojom::CompositorFrameSinkType type) const; |
| 81 cc::SurfaceId GetLatestSurfaceId(mojom::CompositorFrameSinkType type) const; | 82 cc::SurfaceId GetLatestSurfaceId(mojom::CompositorFrameSinkType type) const; |
| 82 void SetLatestSurfaceInfo(mojom::CompositorFrameSinkType type, | 83 void SetLatestSurfaceInfo(mojom::CompositorFrameSinkType type, |
| 83 const cc::SurfaceId& surface_id, | 84 const cc::SurfaceId& surface_id, |
| 84 const gfx::Size& frame_size); | 85 const gfx::Size& frame_size); |
| 85 | 86 |
| 87 void OnRootChanged(ServerWindow* old_root, ServerWindow* new_root); |
| 88 |
| 86 private: | 89 private: |
| 87 friend class ServerWindowCompositorFrameSinkManagerTestApi; | 90 friend class ServerWindowCompositorFrameSinkManagerTestApi; |
| 88 friend class ServerWindowCompositorFrameSink; | 91 friend class ServerWindowCompositorFrameSink; |
| 89 | 92 |
| 90 // Returns true if a CompositorFrameSink of |type| has been set and has | 93 // Returns true if a CompositorFrameSink of |type| has been set and has |
| 91 // received a frame that is greater than the size of the window. | 94 // received a frame that is greater than the size of the window. |
| 92 bool IsCompositorFrameSinkReadyAndNonEmpty( | 95 bool IsCompositorFrameSinkReadyAndNonEmpty( |
| 93 mojom::CompositorFrameSinkType type) const; | 96 mojom::CompositorFrameSinkType type) const; |
| 94 | 97 |
| 95 void CreateCompositorFrameSinkInternal( | 98 void CreateCompositorFrameSinkInternal( |
| (...skipping 16 matching lines...) Expand all Loading... |
| 112 // the underlay is not necessarily as big as the window. | 115 // the underlay is not necessarily as big as the window. |
| 113 bool waiting_for_initial_frames_; | 116 bool waiting_for_initial_frames_; |
| 114 | 117 |
| 115 DISALLOW_COPY_AND_ASSIGN(ServerWindowCompositorFrameSinkManager); | 118 DISALLOW_COPY_AND_ASSIGN(ServerWindowCompositorFrameSinkManager); |
| 116 }; | 119 }; |
| 117 | 120 |
| 118 } // namespace ws | 121 } // namespace ws |
| 119 } // namespace ui | 122 } // namespace ui |
| 120 | 123 |
| 121 #endif // SERVICES_UI_WS_SERVER_WINDOW_COMPOSITOR_FRAME_SINK_MANAGER_H_ | 124 #endif // SERVICES_UI_WS_SERVER_WINDOW_COMPOSITOR_FRAME_SINK_MANAGER_H_ |
| OLD | NEW |