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

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

Issue 2449853004: Getting rid of DelegatedFrameData (Closed)
Patch Set: IsEmpty + rebase Created 4 years, 1 month 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/frame_generator.h" 5 #include "services/ui/ws/frame_generator.h"
6 6
7 #include "base/containers/adapters.h" 7 #include "base/containers/adapters.h"
8 #include "cc/output/compositor_frame.h" 8 #include "cc/output/compositor_frame.h"
9 #include "cc/quads/render_pass.h" 9 #include "cc/quads/render_pass.h"
10 #include "cc/quads/render_pass_draw_quad.h" 10 #include "cc/quads/render_pass_draw_quad.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 const gfx::Rect& output_rect) { 116 const gfx::Rect& output_rect) {
117 const cc::RenderPassId render_pass_id(1, 1); 117 const cc::RenderPassId render_pass_id(1, 1);
118 std::unique_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create(); 118 std::unique_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create();
119 render_pass->SetNew(render_pass_id, output_rect, dirty_rect_, 119 render_pass->SetNew(render_pass_id, output_rect, dirty_rect_,
120 gfx::Transform()); 120 gfx::Transform());
121 121
122 bool may_contain_video = false; 122 bool may_contain_video = false;
123 DrawWindowTree(render_pass.get(), delegate_->GetRootWindow(), gfx::Vector2d(), 123 DrawWindowTree(render_pass.get(), delegate_->GetRootWindow(), gfx::Vector2d(),
124 1.0f, &may_contain_video); 124 1.0f, &may_contain_video);
125 125
126 std::unique_ptr<cc::DelegatedFrameData> frame_data( 126 cc::CompositorFrame frame;
127 new cc::DelegatedFrameData); 127 frame.render_pass_list.push_back(std::move(render_pass));
128 frame_data->render_pass_list.push_back(std::move(render_pass));
129 if (delegate_->IsInHighContrastMode()) { 128 if (delegate_->IsInHighContrastMode()) {
130 std::unique_ptr<cc::RenderPass> invert_pass = cc::RenderPass::Create(); 129 std::unique_ptr<cc::RenderPass> invert_pass = cc::RenderPass::Create();
131 invert_pass->SetNew(cc::RenderPassId(2, 0), output_rect, dirty_rect_, 130 invert_pass->SetNew(cc::RenderPassId(2, 0), output_rect, dirty_rect_,
132 gfx::Transform()); 131 gfx::Transform());
133 cc::SharedQuadState* shared_state = 132 cc::SharedQuadState* shared_state =
134 invert_pass->CreateAndAppendSharedQuadState(); 133 invert_pass->CreateAndAppendSharedQuadState();
135 shared_state->SetAll(gfx::Transform(), output_rect.size(), output_rect, 134 shared_state->SetAll(gfx::Transform(), output_rect.size(), output_rect,
136 output_rect, false, 1.f, SkXfermode::kSrcOver_Mode, 0); 135 output_rect, false, 1.f, SkXfermode::kSrcOver_Mode, 0);
137 auto* quad = invert_pass->CreateAndAppendDrawQuad<cc::RenderPassDrawQuad>(); 136 auto* quad = invert_pass->CreateAndAppendDrawQuad<cc::RenderPassDrawQuad>();
138 cc::FilterOperations filters; 137 cc::FilterOperations filters;
139 filters.Append(cc::FilterOperation::CreateInvertFilter(1.f)); 138 filters.Append(cc::FilterOperation::CreateInvertFilter(1.f));
140 quad->SetNew(shared_state, output_rect, output_rect, render_pass_id, 139 quad->SetNew(shared_state, output_rect, output_rect, render_pass_id,
141 0 /* mask_resource_id */, gfx::Vector2dF() /* mask_uv_scale */, 140 0 /* mask_resource_id */, gfx::Vector2dF() /* mask_uv_scale */,
142 gfx::Size() /* mask_texture_size */, filters, 141 gfx::Size() /* mask_texture_size */, filters,
143 gfx::Vector2dF() /* filters_scale */, 142 gfx::Vector2dF() /* filters_scale */,
144 gfx::PointF() /* filters_origin */, 143 gfx::PointF() /* filters_origin */,
145 cc::FilterOperations() /* background_filters */); 144 cc::FilterOperations() /* background_filters */);
146 frame_data->render_pass_list.push_back(std::move(invert_pass)); 145 frame.render_pass_list.push_back(std::move(invert_pass));
147 } 146 }
148 147
149 cc::CompositorFrame frame;
150 frame.delegated_frame_data = std::move(frame_data);
151 frame.metadata.may_contain_video = may_contain_video; 148 frame.metadata.may_contain_video = may_contain_video;
152 return frame; 149 return frame;
153 } 150 }
154 151
155 void FrameGenerator::DrawWindowTree( 152 void FrameGenerator::DrawWindowTree(
156 cc::RenderPass* pass, 153 cc::RenderPass* pass,
157 ServerWindow* window, 154 ServerWindow* window,
158 const gfx::Vector2d& parent_to_root_origin_offset, 155 const gfx::Vector2d& parent_to_root_origin_offset,
159 float opacity, 156 float opacity,
160 bool* may_contain_video) { 157 bool* may_contain_video) {
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 ReleaseFrameSinkReference(default_compositor_frame_sink->frame_sink_id()); 313 ReleaseFrameSinkReference(default_compositor_frame_sink->frame_sink_id());
317 ServerWindowCompositorFrameSink* underlay_compositor_frame_sink = 314 ServerWindowCompositorFrameSink* underlay_compositor_frame_sink =
318 surface_manager->GetUnderlayCompositorFrameSink(); 315 surface_manager->GetUnderlayCompositorFrameSink();
319 if (underlay_compositor_frame_sink) 316 if (underlay_compositor_frame_sink)
320 ReleaseFrameSinkReference(underlay_compositor_frame_sink->frame_sink_id()); 317 ReleaseFrameSinkReference(underlay_compositor_frame_sink->frame_sink_id());
321 } 318 }
322 319
323 } // namespace ws 320 } // namespace ws
324 321
325 } // namespace ui 322 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698