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

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

Issue 2503203002: Revert "Getting rid of DelegatedFrameData" (Closed)
Patch Set: 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 106
107 cc::CompositorFrame FrameGenerator::GenerateCompositorFrame( 107 cc::CompositorFrame FrameGenerator::GenerateCompositorFrame(
108 const gfx::Rect& output_rect) { 108 const gfx::Rect& output_rect) {
109 const cc::RenderPassId render_pass_id(1, 1); 109 const cc::RenderPassId render_pass_id(1, 1);
110 std::unique_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create(); 110 std::unique_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create();
111 render_pass->SetNew(render_pass_id, output_rect, output_rect, 111 render_pass->SetNew(render_pass_id, output_rect, output_rect,
112 gfx::Transform()); 112 gfx::Transform());
113 113
114 DrawWindowTree(render_pass.get(), root_window_, gfx::Vector2d(), 1.0f); 114 DrawWindowTree(render_pass.get(), root_window_, gfx::Vector2d(), 1.0f);
115 115
116 cc::CompositorFrame frame; 116 std::unique_ptr<cc::DelegatedFrameData> frame_data(
117 frame.render_pass_list.push_back(std::move(render_pass)); 117 new cc::DelegatedFrameData);
118 frame_data->render_pass_list.push_back(std::move(render_pass));
118 if (delegate_->IsInHighContrastMode()) { 119 if (delegate_->IsInHighContrastMode()) {
119 std::unique_ptr<cc::RenderPass> invert_pass = cc::RenderPass::Create(); 120 std::unique_ptr<cc::RenderPass> invert_pass = cc::RenderPass::Create();
120 invert_pass->SetNew(cc::RenderPassId(2, 0), output_rect, output_rect, 121 invert_pass->SetNew(cc::RenderPassId(2, 0), output_rect, output_rect,
121 gfx::Transform()); 122 gfx::Transform());
122 cc::SharedQuadState* shared_state = 123 cc::SharedQuadState* shared_state =
123 invert_pass->CreateAndAppendSharedQuadState(); 124 invert_pass->CreateAndAppendSharedQuadState();
124 shared_state->SetAll(gfx::Transform(), output_rect.size(), output_rect, 125 shared_state->SetAll(gfx::Transform(), output_rect.size(), output_rect,
125 output_rect, false, 1.f, SkXfermode::kSrcOver_Mode, 0); 126 output_rect, false, 1.f, SkXfermode::kSrcOver_Mode, 0);
126 auto* quad = invert_pass->CreateAndAppendDrawQuad<cc::RenderPassDrawQuad>(); 127 auto* quad = invert_pass->CreateAndAppendDrawQuad<cc::RenderPassDrawQuad>();
127 cc::FilterOperations filters; 128 cc::FilterOperations filters;
128 filters.Append(cc::FilterOperation::CreateInvertFilter(1.f)); 129 filters.Append(cc::FilterOperation::CreateInvertFilter(1.f));
129 quad->SetNew(shared_state, output_rect, output_rect, render_pass_id, 130 quad->SetNew(shared_state, output_rect, output_rect, render_pass_id,
130 0 /* mask_resource_id */, gfx::Vector2dF() /* mask_uv_scale */, 131 0 /* mask_resource_id */, gfx::Vector2dF() /* mask_uv_scale */,
131 gfx::Size() /* mask_texture_size */, filters, 132 gfx::Size() /* mask_texture_size */, filters,
132 gfx::Vector2dF() /* filters_scale */, 133 gfx::Vector2dF() /* filters_scale */,
133 gfx::PointF() /* filters_origin */, 134 gfx::PointF() /* filters_origin */,
134 cc::FilterOperations() /* background_filters */); 135 cc::FilterOperations() /* background_filters */);
135 frame.render_pass_list.push_back(std::move(invert_pass)); 136 frame_data->render_pass_list.push_back(std::move(invert_pass));
136 } 137 }
137 138
139 cc::CompositorFrame frame;
140 frame.delegated_frame_data = std::move(frame_data);
138 return frame; 141 return frame;
139 } 142 }
140 143
141 void FrameGenerator::DrawWindowTree( 144 void FrameGenerator::DrawWindowTree(
142 cc::RenderPass* pass, 145 cc::RenderPass* pass,
143 ServerWindow* window, 146 ServerWindow* window,
144 const gfx::Vector2d& parent_to_root_origin_offset, 147 const gfx::Vector2d& parent_to_root_origin_offset,
145 float opacity) { 148 float opacity) {
146 if (!window->visible()) 149 if (!window->visible())
147 return; 150 return;
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 cc::SurfaceId underlay_surface_id = 304 cc::SurfaceId underlay_surface_id =
302 window->compositor_frame_sink_manager()->GetLatestSurfaceId( 305 window->compositor_frame_sink_manager()->GetLatestSurfaceId(
303 mojom::CompositorFrameSinkType::UNDERLAY); 306 mojom::CompositorFrameSinkType::UNDERLAY);
304 if (underlay_surface_id.is_valid()) 307 if (underlay_surface_id.is_valid())
305 ReleaseFrameSinkReference(underlay_surface_id.frame_sink_id()); 308 ReleaseFrameSinkReference(underlay_surface_id.frame_sink_id());
306 } 309 }
307 310
308 } // namespace ws 311 } // namespace ws
309 312
310 } // namespace ui 313 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/surfaces/display_compositor_frame_sink.cc ('k') | services/ui/ws/gpu_compositor_frame_sink.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698