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

Side by Side Diff: components/mus/ws/server_window_surface.cc

Issue 1640253003: Makes resolving ids work correctly in new world (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge to trunk Created 4 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 "components/mus/ws/server_window_surface.h" 5 #include "components/mus/ws/server_window_surface.h"
6 6
7 #include "cc/output/compositor_frame.h" 7 #include "cc/output/compositor_frame.h"
8 #include "cc/quads/shared_quad_state.h" 8 #include "cc/quads/shared_quad_state.h"
9 #include "cc/quads/surface_draw_quad.h" 9 #include "cc/quads/surface_draw_quad.h"
10 #include "components/mus/surfaces/surfaces_state.h" 10 #include "components/mus/surfaces/surfaces_state.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 const mojom::CompositorFramePtr& input) { 92 const mojom::CompositorFramePtr& input) {
93 referenced_window_ids_.clear(); 93 referenced_window_ids_.clear();
94 return ConvertToCompositorFrame(input, this); 94 return ConvertToCompositorFrame(input, this);
95 } 95 }
96 96
97 bool ServerWindowSurface::ConvertSurfaceDrawQuad( 97 bool ServerWindowSurface::ConvertSurfaceDrawQuad(
98 const mojom::QuadPtr& input, 98 const mojom::QuadPtr& input,
99 const mojom::CompositorFrameMetadataPtr& metadata, 99 const mojom::CompositorFrameMetadataPtr& metadata,
100 cc::SharedQuadState* sqs, 100 cc::SharedQuadState* sqs,
101 cc::RenderPass* render_pass) { 101 cc::RenderPass* render_pass) {
102 Id id = static_cast<Id>( 102 // Surface ids originate from the client, meaning they are ClientWindowIds
103 // and can only be resolved by the client that submitted the frame.
104 const ClientWindowId other_client_window_id(
103 input->surface_quad_state->surface.To<cc::SurfaceId>().id); 105 input->surface_quad_state->surface.To<cc::SurfaceId>().id);
104 // TODO(sky): this is now wrong, needs mapping from client to window. 106 ServerWindow* other_window = window()->delegate()->FindWindowForSurface(
105 WindowId other_window_id = WindowIdFromTransportId(id); 107 window(), mojom::SurfaceType::DEFAULT, other_client_window_id);
106 ServerWindow* other_window = window()->GetChildWindow(other_window_id);
107 if (!other_window) { 108 if (!other_window) {
108 DVLOG(2) << "The window ID '" << id << "' does not exist."; 109 DVLOG(2) << "The window ID '" << other_client_window_id.id
110 << "' does not exist.";
109 // TODO(fsamuel): We return true here so that the CompositorFrame isn't 111 // TODO(fsamuel): We return true here so that the CompositorFrame isn't
110 // entirely rejected. We just drop this SurfaceDrawQuad. This failure 112 // entirely rejected. We just drop this SurfaceDrawQuad. This failure
111 // can happen if the client has an out of date view of the window tree. 113 // can happen if the client has an out of date view of the window tree.
112 // It would be nice if we can avoid reaching this state in the future. 114 // It would be nice if we can avoid reaching this state in the future.
113 return true; 115 return true;
114 } 116 }
115 117
116 referenced_window_ids_.insert(other_window_id); 118 referenced_window_ids_.insert(other_window->id());
117 119
118 ServerWindowSurface* default_surface = 120 ServerWindowSurface* default_surface =
119 other_window->GetOrCreateSurfaceManager()->GetDefaultSurface(); 121 other_window->GetOrCreateSurfaceManager()->GetDefaultSurface();
120 ServerWindowSurface* underlay_surface = 122 ServerWindowSurface* underlay_surface =
121 other_window->GetOrCreateSurfaceManager()->GetUnderlaySurface(); 123 other_window->GetOrCreateSurfaceManager()->GetUnderlaySurface();
122 124
123 if (!default_surface && !underlay_surface) 125 if (!default_surface && !underlay_surface)
124 return true; 126 return true;
125 127
126 cc::SurfaceDrawQuad* surface_quad = 128 cc::SurfaceDrawQuad* surface_quad =
(...skipping 24 matching lines...) Expand all
151 } 153 }
152 154
153 void ServerWindowSurface::SetBeginFrameSource( 155 void ServerWindowSurface::SetBeginFrameSource(
154 cc::SurfaceId surface_id, 156 cc::SurfaceId surface_id,
155 cc::BeginFrameSource* begin_frame_source) { 157 cc::BeginFrameSource* begin_frame_source) {
156 // TODO(tansell): Implement this. 158 // TODO(tansell): Implement this.
157 } 159 }
158 160
159 } // namespace ws 161 } // namespace ws
160 } // namespace mus 162 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/ws/server_window_delegate.h ('k') | components/mus/ws/test_server_window_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698