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