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