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

Side by Side Diff: content/browser/compositor/mus_browser_compositor_output_surface.cc

Issue 2449853004: 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 "content/browser/compositor/mus_browser_compositor_output_surface.h" 5 #include "content/browser/compositor/mus_browser_compositor_output_surface.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "cc/output/compositor_frame.h" 9 #include "cc/output/compositor_frame.h"
10 #include "cc/output/output_surface_frame.h" 10 #include "cc/output/output_surface_frame.h"
(...skipping 26 matching lines...) Expand all
37 37
38 MusBrowserCompositorOutputSurface::~MusBrowserCompositorOutputSurface() {} 38 MusBrowserCompositorOutputSurface::~MusBrowserCompositorOutputSurface() {}
39 39
40 void MusBrowserCompositorOutputSurface::SwapBuffers( 40 void MusBrowserCompositorOutputSurface::SwapBuffers(
41 cc::OutputSurfaceFrame frame) { 41 cc::OutputSurfaceFrame frame) {
42 const gfx::Rect bounds(ui_window_->bounds().size()); 42 const gfx::Rect bounds(ui_window_->bounds().size());
43 cc::CompositorFrame ui_frame; 43 cc::CompositorFrame ui_frame;
44 ui_frame.metadata.latency_info = std::move(frame.latency_info); 44 ui_frame.metadata.latency_info = std::move(frame.latency_info);
45 // Reset latency_info to known empty state after moving contents. 45 // Reset latency_info to known empty state after moving contents.
46 frame.latency_info.clear(); 46 frame.latency_info.clear();
47 ui_frame.delegated_frame_data = base::MakeUnique<cc::DelegatedFrameData>();
48 const cc::RenderPassId render_pass_id(1, 1); 47 const cc::RenderPassId render_pass_id(1, 1);
49 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); 48 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create();
50 const bool has_transparent_background = true; 49 const bool has_transparent_background = true;
51 pass->SetAll(render_pass_id, bounds, bounds, gfx::Transform(), 50 pass->SetAll(render_pass_id, bounds, bounds, gfx::Transform(),
52 has_transparent_background); 51 has_transparent_background);
53 // The SharedQuadState is owned by the SharedQuadStateList 52 // The SharedQuadState is owned by the SharedQuadStateList
54 // shared_quad_state_list. 53 // shared_quad_state_list.
55 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 54 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
56 sqs->SetAll(gfx::Transform(), bounds.size(), bounds, bounds, 55 sqs->SetAll(gfx::Transform(), bounds.size(), bounds, bounds,
57 false /* is_clipped */, 1.f /* opacity */, SkXfermode::kSrc_Mode, 56 false /* is_clipped */, 1.f /* opacity */, SkXfermode::kSrc_Mode,
(...skipping 20 matching lines...) Expand all
78 const GLuint64 fence_sync = gl->InsertFenceSyncCHROMIUM(); 77 const GLuint64 fence_sync = gl->InsertFenceSyncCHROMIUM();
79 gl->ShallowFlushCHROMIUM(); 78 gl->ShallowFlushCHROMIUM();
80 gpu::SyncToken sync_token; 79 gpu::SyncToken sync_token;
81 gl->GenSyncTokenCHROMIUM(fence_sync, sync_token.GetData()); 80 gl->GenSyncTokenCHROMIUM(fence_sync, sync_token.GetData());
82 81
83 resource.mailbox_holder = 82 resource.mailbox_holder =
84 gpu::MailboxHolder(mailbox, sync_token, GL_TEXTURE_2D); 83 gpu::MailboxHolder(mailbox, sync_token, GL_TEXTURE_2D);
85 resource.read_lock_fences_enabled = false; 84 resource.read_lock_fences_enabled = false;
86 resource.is_software = false; 85 resource.is_software = false;
87 resource.is_overlay_candidate = false; 86 resource.is_overlay_candidate = false;
88 ui_frame.delegated_frame_data->resource_list.push_back(std::move(resource)); 87 ui_frame.resource_list.push_back(std::move(resource));
89 88
90 const bool needs_blending = true; 89 const bool needs_blending = true;
91 const bool premultiplied_alpha = true; 90 const bool premultiplied_alpha = true;
92 const gfx::PointF uv_top_left(0.f, 0.f); 91 const gfx::PointF uv_top_left(0.f, 0.f);
93 const gfx::PointF uv_bottom_right(1.f, 1.f); 92 const gfx::PointF uv_bottom_right(1.f, 1.f);
94 const uint32_t background_color = 0x00000000; 93 const uint32_t background_color = 0x00000000;
95 const float vertex_opacity[4] = {1.f, 1.f, 1.f, 1.f}; 94 const float vertex_opacity[4] = {1.f, 1.f, 1.f, 1.f};
96 const bool y_flipped = true; 95 const bool y_flipped = true;
97 const bool nearest_neighbor = false; 96 const bool nearest_neighbor = false;
98 const bool secure_output_only = false; 97 const bool secure_output_only = false;
99 98
100 cc::TextureDrawQuad* quad = 99 cc::TextureDrawQuad* quad =
101 pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); 100 pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>();
102 quad->SetAll(sqs, rect, rect, rect, needs_blending, resource.id, gfx::Size(), 101 quad->SetAll(sqs, rect, rect, rect, needs_blending, resource.id, gfx::Size(),
103 premultiplied_alpha, uv_top_left, uv_bottom_right, 102 premultiplied_alpha, uv_top_left, uv_bottom_right,
104 background_color, vertex_opacity, y_flipped, nearest_neighbor, 103 background_color, vertex_opacity, y_flipped, nearest_neighbor,
105 secure_output_only); 104 secure_output_only);
106 105
107 ui_frame.delegated_frame_data->render_pass_list.push_back(std::move(pass)); 106 ui_frame.render_pass_list.push_back(std::move(pass));
108 ui_compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame)); 107 ui_compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
109 return; 108 return;
110 } 109 }
111 110
112 bool MusBrowserCompositorOutputSurface::BindToClient( 111 bool MusBrowserCompositorOutputSurface::BindToClient(
113 cc::OutputSurfaceClient* client) { 112 cc::OutputSurfaceClient* client) {
114 if (!GpuBrowserCompositorOutputSurface::BindToClient(client)) 113 if (!GpuBrowserCompositorOutputSurface::BindToClient(client))
115 return false; 114 return false;
116 ui_compositor_frame_sink_->BindToClient(this); 115 ui_compositor_frame_sink_->BindToClient(this);
117 return true; 116 return true;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 174
176 const gpu::Mailbox& MusBrowserCompositorOutputSurface::GetMailboxFromResourceId( 175 const gpu::Mailbox& MusBrowserCompositorOutputSurface::GetMailboxFromResourceId(
177 uint32_t id) { 176 uint32_t id) {
178 DCHECK_LT(id, mailboxes_.size()); 177 DCHECK_LT(id, mailboxes_.size());
179 DCHECK(std::find(free_resource_ids_.begin(), free_resource_ids_.end(), id) == 178 DCHECK(std::find(free_resource_ids_.begin(), free_resource_ids_.end(), id) ==
180 free_resource_ids_.end()); 179 free_resource_ids_.end());
181 return mailboxes_[id]; 180 return mailboxes_[id];
182 } 181 }
183 182
184 } // namespace content 183 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698