Chromium Code Reviews| Index: cc/surfaces/surface_aggregator.cc |
| diff --git a/cc/surfaces/surface_aggregator.cc b/cc/surfaces/surface_aggregator.cc |
| index 679d7516b621030e8f5156d72b8df9ce7adc22a2..df648d8d5583a4c1d1c0c9d92ddefc9aa812c87f 100644 |
| --- a/cc/surfaces/surface_aggregator.cc |
| +++ b/cc/surfaces/surface_aggregator.cc |
| @@ -188,7 +188,9 @@ void SurfaceAggregator::HandleSurfaceQuad(const SurfaceDrawQuad* surface_quad, |
| for (size_t j = 0; j < passes_to_copy; ++j) { |
| const RenderPass& source = *referenced_passes[j]; |
| - scoped_ptr<RenderPass> copy_pass(RenderPass::Create()); |
| + size_t sqs_size = source.shared_quad_state_list.size(); |
| + size_t dq_size = source.quad_list.size(); |
| + scoped_ptr<RenderPass> copy_pass(RenderPass::Create(sqs_size, dq_size)); |
| RenderPassId remapped_pass_id = RemapPassId(source.id, surface_id); |
| @@ -284,16 +286,17 @@ void SurfaceAggregator::CopyQuadsToPass( |
| SurfaceId surface_id) { |
| const SharedQuadState* last_copied_source_shared_quad_state = NULL; |
| - size_t sqs_i = 0; |
| + SharedQuadStateList::ConstIterator sqs_iter = |
| + source_shared_quad_state_list.begin(); |
| for (QuadList::ConstIterator iter = source_quad_list.begin(); |
| iter != source_quad_list.end(); |
| ++iter) { |
| const DrawQuad* quad = &*iter; |
| - while (quad->shared_quad_state != source_shared_quad_state_list[sqs_i]) { |
| - ++sqs_i; |
| - DCHECK_LT(sqs_i, source_shared_quad_state_list.size()); |
| + while (quad->shared_quad_state != &(*sqs_iter)) { |
|
danakj
2014/09/26 20:40:55
&*?
weiliangc
2014/10/01 23:02:00
Done.
|
| + ++sqs_iter; |
| + DCHECK(sqs_iter != source_shared_quad_state_list.end()); |
| } |
| - DCHECK_EQ(quad->shared_quad_state, source_shared_quad_state_list[sqs_i]); |
| + DCHECK_EQ(quad->shared_quad_state, &(*sqs_iter)); |
|
danakj
2014/09/26 20:40:55
&*?
weiliangc
2014/10/01 23:02:00
Done.
|
| if (quad->material == DrawQuad::SURFACE_CONTENT) { |
| const SurfaceDrawQuad* surface_quad = SurfaceDrawQuad::MaterialCast(quad); |
| @@ -328,7 +331,9 @@ void SurfaceAggregator::CopyPasses(const RenderPassList& source_pass_list, |
| for (size_t i = 0; i < source_pass_list.size(); ++i) { |
| const RenderPass& source = *source_pass_list[i]; |
| - scoped_ptr<RenderPass> copy_pass(RenderPass::Create()); |
| + size_t sqs_size = source.shared_quad_state_list.size(); |
| + size_t dq_size = source.quad_list.size(); |
| + scoped_ptr<RenderPass> copy_pass(RenderPass::Create(sqs_size, dq_size)); |
| RenderPassId remapped_pass_id = |
| RemapPassId(source.id, surface->surface_id()); |