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)); |
} |