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

Side by Side Diff: services/ui/ws/server_window_compositor_frame_sink_manager.cc

Issue 2610723002: Unify SurfaceInfo (Closed)
Patch Set: More cleanup Created 3 years, 11 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 unified diff | Download patch
OLDNEW
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 #include "services/ui/ws/server_window_compositor_frame_sink_manager.h" 5 #include "services/ui/ws/server_window_compositor_frame_sink_manager.h"
6 6
7 #include "cc/ipc/display_compositor.mojom.h" 7 #include "cc/ipc/display_compositor.mojom.h"
8 #include "mojo/public/cpp/bindings/strong_binding.h" 8 #include "mojo/public/cpp/bindings/strong_binding.h"
9 #include "services/ui/ws/ids.h" 9 #include "services/ui/ws/ids.h"
10 #include "services/ui/ws/server_window.h" 10 #include "services/ui/ws/server_window.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 mojom::CompositorFrameSinkType::DEFAULT) || 87 mojom::CompositorFrameSinkType::DEFAULT) ||
88 HasCompositorFrameSinkOfType(mojom::CompositorFrameSinkType::UNDERLAY); 88 HasCompositorFrameSinkOfType(mojom::CompositorFrameSinkType::UNDERLAY);
89 } 89 }
90 90
91 gfx::Size ServerWindowCompositorFrameSinkManager::GetLatestFrameSize( 91 gfx::Size ServerWindowCompositorFrameSinkManager::GetLatestFrameSize(
92 mojom::CompositorFrameSinkType type) const { 92 mojom::CompositorFrameSinkType type) const {
93 auto it = type_to_compositor_frame_sink_map_.find(type); 93 auto it = type_to_compositor_frame_sink_map_.find(type);
94 if (it == type_to_compositor_frame_sink_map_.end()) 94 if (it == type_to_compositor_frame_sink_map_.end())
95 return gfx::Size(); 95 return gfx::Size();
96 96
97 return it->second.latest_submitted_frame_size; 97 return it->second.latest_submitted_surface_info.size_in_pixels();
98 } 98 }
99 99
100 cc::SurfaceId ServerWindowCompositorFrameSinkManager::GetLatestSurfaceId( 100 cc::SurfaceId ServerWindowCompositorFrameSinkManager::GetLatestSurfaceId(
101 mojom::CompositorFrameSinkType type) const { 101 mojom::CompositorFrameSinkType type) const {
102 auto it = type_to_compositor_frame_sink_map_.find(type); 102 auto it = type_to_compositor_frame_sink_map_.find(type);
103 if (it == type_to_compositor_frame_sink_map_.end()) 103 if (it == type_to_compositor_frame_sink_map_.end())
104 return cc::SurfaceId(); 104 return cc::SurfaceId();
105 105
106 return it->second.latest_submitted_surface_id; 106 return it->second.latest_submitted_surface_info.id();
107 } 107 }
108 108
109 void ServerWindowCompositorFrameSinkManager::SetLatestSurfaceInfo( 109 void ServerWindowCompositorFrameSinkManager::SetLatestSurfaceInfo(
110 mojom::CompositorFrameSinkType type, 110 mojom::CompositorFrameSinkType type,
111 const cc::SurfaceId& surface_id, 111 const cc::SurfaceInfo& surface_info) {
112 const gfx::Size& frame_size) {
113 CompositorFrameSinkData& data = type_to_compositor_frame_sink_map_[type]; 112 CompositorFrameSinkData& data = type_to_compositor_frame_sink_map_[type];
114 data.latest_submitted_surface_id = surface_id; 113 data.latest_submitted_surface_info = surface_info;
115 data.latest_submitted_frame_size = frame_size;
116 } 114 }
117 115
118 void ServerWindowCompositorFrameSinkManager::OnRootChanged( 116 void ServerWindowCompositorFrameSinkManager::OnRootChanged(
119 ServerWindow* old_root, 117 ServerWindow* old_root,
120 ServerWindow* new_root) { 118 ServerWindow* new_root) {
121 for (const auto& pair : type_to_compositor_frame_sink_map_) { 119 for (const auto& pair : type_to_compositor_frame_sink_map_) {
122 if (old_root) { 120 if (old_root) {
123 old_root->GetOrCreateCompositorFrameSinkManager()->RemoveChildFrameSinkId( 121 old_root->GetOrCreateCompositorFrameSinkManager()->RemoveChildFrameSinkId(
124 pair.first, pair.second.frame_sink_id); 122 pair.first, pair.second.frame_sink_id);
125 } 123 }
126 if (new_root) { 124 if (new_root) {
127 new_root->GetOrCreateCompositorFrameSinkManager()->AddChildFrameSinkId( 125 new_root->GetOrCreateCompositorFrameSinkManager()->AddChildFrameSinkId(
128 pair.first, pair.second.frame_sink_id); 126 pair.first, pair.second.frame_sink_id);
129 } 127 }
130 } 128 }
131 } 129 }
132 130
133 bool ServerWindowCompositorFrameSinkManager:: 131 bool ServerWindowCompositorFrameSinkManager::
134 IsCompositorFrameSinkReadyAndNonEmpty( 132 IsCompositorFrameSinkReadyAndNonEmpty(
135 mojom::CompositorFrameSinkType type) const { 133 mojom::CompositorFrameSinkType type) const {
136 auto iter = type_to_compositor_frame_sink_map_.find(type); 134 auto iter = type_to_compositor_frame_sink_map_.find(type);
137 if (iter == type_to_compositor_frame_sink_map_.end()) 135 if (iter == type_to_compositor_frame_sink_map_.end())
138 return false; 136 return false;
139 if (iter->second.latest_submitted_frame_size.IsEmpty()) 137 if (iter->second.latest_submitted_surface_info.size_in_pixels().IsEmpty())
140 return false; 138 return false;
141 const gfx::Size& latest_submitted_frame_size = 139 const gfx::Size& latest_submitted_frame_size =
142 iter->second.latest_submitted_frame_size; 140 iter->second.latest_submitted_surface_info.size_in_pixels();
143 return latest_submitted_frame_size.width() >= window_->bounds().width() && 141 return latest_submitted_frame_size.width() >= window_->bounds().width() &&
144 latest_submitted_frame_size.height() >= window_->bounds().height(); 142 latest_submitted_frame_size.height() >= window_->bounds().height();
145 } 143 }
146 144
147 void ServerWindowCompositorFrameSinkManager::CreateCompositorFrameSinkInternal( 145 void ServerWindowCompositorFrameSinkManager::CreateCompositorFrameSinkInternal(
148 mojom::CompositorFrameSinkType compositor_frame_sink_type, 146 mojom::CompositorFrameSinkType compositor_frame_sink_type,
149 gfx::AcceleratedWidget widget, 147 gfx::AcceleratedWidget widget,
150 cc::mojom::MojoCompositorFrameSinkRequest request, 148 cc::mojom::MojoCompositorFrameSinkRequest request,
151 cc::mojom::MojoCompositorFrameSinkClientPtr client, 149 cc::mojom::MojoCompositorFrameSinkClientPtr client,
152 cc::mojom::DisplayPrivateRequest display_private_request) { 150 cc::mojom::DisplayPrivateRequest display_private_request) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 } 187 }
190 } 188 }
191 } 189 }
192 190
193 CompositorFrameSinkData::CompositorFrameSinkData() {} 191 CompositorFrameSinkData::CompositorFrameSinkData() {}
194 192
195 CompositorFrameSinkData::~CompositorFrameSinkData() {} 193 CompositorFrameSinkData::~CompositorFrameSinkData() {}
196 194
197 CompositorFrameSinkData::CompositorFrameSinkData( 195 CompositorFrameSinkData::CompositorFrameSinkData(
198 CompositorFrameSinkData&& other) 196 CompositorFrameSinkData&& other)
199 : latest_submitted_surface_id(other.latest_submitted_surface_id), 197 : latest_submitted_surface_info(other.latest_submitted_surface_info),
200 compositor_frame_sink(std::move(other.compositor_frame_sink)) {} 198 compositor_frame_sink(std::move(other.compositor_frame_sink)) {}
201 199
202 CompositorFrameSinkData& CompositorFrameSinkData::operator=( 200 CompositorFrameSinkData& CompositorFrameSinkData::operator=(
203 CompositorFrameSinkData&& other) { 201 CompositorFrameSinkData&& other) {
204 latest_submitted_surface_id = other.latest_submitted_surface_id; 202 latest_submitted_surface_info = other.latest_submitted_surface_info;
205 compositor_frame_sink = std::move(other.compositor_frame_sink); 203 compositor_frame_sink = std::move(other.compositor_frame_sink);
206 return *this; 204 return *this;
207 } 205 }
208 206
209 } // namespace ws 207 } // namespace ws
210 } // namespace ui 208 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698