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

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: change header files to try fix compile error 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
« no previous file with comments | « cc/quads/render_pass.h ('k') | cc/quads/render_pass_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/quads/render_pass.cc
diff --git a/cc/quads/render_pass.cc b/cc/quads/render_pass.cc
index 6cb59d8efe541852f8e40f3ec21e33e7d065d738..e487c0963824d58f842e479f29c20711642c682c 100644
--- a/cc/quads/render_pass.cc
+++ b/cc/quads/render_pass.cc
@@ -13,6 +13,7 @@
#include "cc/quads/debug_border_draw_quad.h"
#include "cc/quads/draw_quad.h"
#include "cc/quads/io_surface_draw_quad.h"
+#include "cc/quads/largest_draw_quad.h"
#include "cc/quads/picture_draw_quad.h"
#include "cc/quads/render_pass_draw_quad.h"
#include "cc/quads/shared_quad_state.h"
@@ -30,6 +31,11 @@ const size_t kDefaultNumQuadsToReserve = 128;
namespace cc {
+QuadList::QuadList(size_t default_size_to_reserve)
+ : ListContainer<DrawQuad>(sizeof(kLargestDrawQuad),
+ default_size_to_reserve) {
+}
+
scoped_ptr<RenderPass> RenderPass::Create() {
return make_scoped_ptr(new RenderPass());
}
@@ -39,17 +45,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 +97,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 +183,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();
« no previous file with comments | « cc/quads/render_pass.h ('k') | cc/quads/render_pass_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698