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

Unified Diff: cc/quads/render_pass.cc

Issue 448303002: Use custom ListContainer to allocate DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@perftest
Patch Set: rename at() to ElementAt() 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/quads/render_pass.cc
diff --git a/cc/quads/render_pass.cc b/cc/quads/render_pass.cc
index 6cb59d8efe541852f8e40f3ec21e33e7d065d738..0fb083ed77e3ea46163f68580c4a38b886b8ee21 100644
--- a/cc/quads/render_pass.cc
+++ b/cc/quads/render_pass.cc
@@ -14,10 +14,9 @@
#include "cc/quads/draw_quad.h"
#include "cc/quads/io_surface_draw_quad.h"
#include "cc/quads/picture_draw_quad.h"
-#include "cc/quads/render_pass_draw_quad.h"
+#include "cc/quads/render_pass_id.h"
#include "cc/quads/shared_quad_state.h"
#include "cc/quads/solid_color_draw_quad.h"
-#include "cc/quads/stream_video_draw_quad.h"
#include "cc/quads/surface_draw_quad.h"
#include "cc/quads/texture_draw_quad.h"
#include "cc/quads/tile_draw_quad.h"
@@ -39,17 +38,19 @@ scoped_ptr<RenderPass> RenderPass::Create(size_t num_layers) {
}
RenderPass::RenderPass()
- : id(RenderPassId(-1, -1)), has_transparent_background(true) {
+ : id(RenderPassId(-1, -1)),
+ has_transparent_background(true),
+ quad_list(kDefaultNumQuadsToReserve) {
shared_quad_state_list.reserve(kDefaultNumSharedQuadStatesToReserve);
- quad_list.reserve(kDefaultNumQuadsToReserve);
}
RenderPass::RenderPass(size_t num_layers)
- : id(RenderPassId(-1, -1)), has_transparent_background(true) {
+ : id(RenderPassId(-1, -1)),
+ has_transparent_background(true),
+ quad_list(kDefaultNumQuadsToReserve) {
// Each layer usually produces one shared quad state, so the number of layers
// is a good hint for what to reserve here.
shared_quad_state_list.reserve(num_layers);
- quad_list.reserve(kDefaultNumQuadsToReserve);
}
RenderPass::~RenderPass() {
@@ -89,16 +90,17 @@ void RenderPass::CopyAll(const ScopedPtrVector<RenderPass>& in,
copy_pass->CreateAndAppendSharedQuadState();
copy_shared_quad_state->CopyFrom(source->shared_quad_state_list[i]);
}
- for (size_t i = 0, sqs_i = 0; i < source->quad_list.size(); ++i) {
- while (source->quad_list[i]->shared_quad_state !=
- source->shared_quad_state_list[sqs_i]) {
+ size_t sqs_i = 0;
+ for (QuadList::Iterator iter = source->quad_list.begin();
+ iter != source->quad_list.end();
+ ++iter) {
+ while (iter->shared_quad_state != source->shared_quad_state_list[sqs_i]) {
++sqs_i;
DCHECK_LT(sqs_i, source->shared_quad_state_list.size());
}
- DCHECK(source->quad_list[i]->shared_quad_state ==
- source->shared_quad_state_list[sqs_i]);
+ DCHECK(iter->shared_quad_state == source->shared_quad_state_list[sqs_i]);
- DrawQuad* quad = source->quad_list[i];
+ DrawQuad* quad = &*iter;
if (quad->material == DrawQuad::RENDER_PASS) {
const RenderPassDrawQuad* pass_quad =
@@ -174,9 +176,11 @@ void RenderPass::AsValueInto(base::debug::TracedValue* value) const {
value->EndArray();
value->BeginArray("quad_list");
- for (size_t i = 0; i < quad_list.size(); ++i) {
+ for (QuadList::ConstIterator iter = quad_list.begin();
+ iter != quad_list.end();
+ ++iter) {
value->BeginDictionary();
- quad_list[i]->AsValueInto(value);
+ iter->AsValueInto(value);
value->EndDictionary();
}
value->EndArray();

Powered by Google App Engine
This is Rietveld 408576698