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

Unified Diff: cc/output/delegating_renderer.cc

Issue 2317953002: cc: Merge the DrawLayer()/DrawFrame() and SwapBuffers() methods. (Closed)
Patch Set: merge-draw-swap-2: rebase Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/output/delegating_renderer.h ('k') | cc/test/layer_tree_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/delegating_renderer.cc
diff --git a/cc/output/delegating_renderer.cc b/cc/output/delegating_renderer.cc
index 5ad796ca8ded2164f026fb606cd39062bac8811e..6767ee053118d6652def6cd51e8682471ab58af5 100644
--- a/cc/output/delegating_renderer.cc
+++ b/cc/output/delegating_renderer.cc
@@ -6,6 +6,7 @@
#include <set>
#include <string>
+#include <utility>
#include <vector>
#include "base/memory/ptr_util.h"
@@ -15,7 +16,6 @@
#include "cc/quads/render_pass.h"
#include "cc/resources/resource_provider.h"
#include "gpu/command_buffer/client/context_support.h"
-#include "gpu/command_buffer/client/gles2_interface.h"
namespace cc {
@@ -28,31 +28,26 @@ DelegatingRenderer::DelegatingRenderer(OutputSurface* output_surface,
DelegatingRenderer::~DelegatingRenderer() = default;
-void DelegatingRenderer::DrawFrame(
- RenderPassList* render_passes_in_draw_order) {
+void DelegatingRenderer::DrawFrame(CompositorFrameMetadata metadata,
+ RenderPassList render_passes_in_draw_order) {
TRACE_EVENT0("cc", "DelegatingRenderer::DrawFrame");
- delegated_frame_data_ = base::WrapUnique(new DelegatedFrameData);
- DelegatedFrameData& out_data = *delegated_frame_data_;
- // Move the render passes and resources into the |out_frame|.
- out_data.render_pass_list.swap(*render_passes_in_draw_order);
-
- // Collect all resource ids in the render passes into a ResourceIdArray.
+ // Collect all resource ids in the render passes into a single array.
ResourceProvider::ResourceIdArray resources;
- for (const auto& render_pass : out_data.render_pass_list) {
+ for (const auto& render_pass : render_passes_in_draw_order) {
for (auto* quad : render_pass->quad_list) {
for (ResourceId resource_id : quad->resources)
resources.push_back(resource_id);
}
}
- resource_provider_->PrepareSendToParent(resources, &out_data.resource_list);
-}
-void DelegatingRenderer::SwapBuffers(CompositorFrameMetadata metadata) {
- TRACE_EVENT0("cc,benchmark", "DelegatingRenderer::SwapBuffers");
+ auto data = base::MakeUnique<DelegatedFrameData>();
+ resource_provider_->PrepareSendToParent(resources, &data->resource_list);
+ data->render_pass_list = std::move(render_passes_in_draw_order);
+
CompositorFrame compositor_frame;
compositor_frame.metadata = std::move(metadata);
- compositor_frame.delegated_frame_data = std::move(delegated_frame_data_);
+ compositor_frame.delegated_frame_data = std::move(data);
output_surface_->SwapBuffers(std::move(compositor_frame));
}
« no previous file with comments | « cc/output/delegating_renderer.h ('k') | cc/test/layer_tree_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698