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

Unified Diff: cc/surfaces/surface_aggregator.cc

Issue 551013002: Use Custome ListContainer to Allocate SharedQuadState (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@DQAllo
Patch Set: use ElementAt for unittest Created 6 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
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());

Powered by Google App Engine
This is Rietveld 408576698