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

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 12912010: cc: Convert non-const reference arguments to pointers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ui/compositor Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/occlusion_tracker_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 4263 matching lines...) Expand 10 before | Expand all | Expand 10 after
4274 Proxy* proxy) 4274 Proxy* proxy)
4275 : GLRenderer(this, output_surface, resource_provider) {} 4275 : GLRenderer(this, output_surface, resource_provider) {}
4276 4276
4277 private: 4277 private:
4278 LayerTreeSettings settings_; 4278 LayerTreeSettings settings_;
4279 gfx::Size viewport_size_; 4279 gfx::Size viewport_size_;
4280 base::hash_set<RenderPass::Id> textures_; 4280 base::hash_set<RenderPass::Id> textures_;
4281 }; 4281 };
4282 4282
4283 static void ConfigureRenderPassTestData(const char* test_script, 4283 static void ConfigureRenderPassTestData(const char* test_script,
4284 RenderPassRemovalTestData& test_data, 4284 RenderPassRemovalTestData* test_data,
4285 TestRenderer* renderer) { 4285 TestRenderer* renderer) {
4286 renderer->ClearCachedTextures(); 4286 renderer->ClearCachedTextures();
4287 4287
4288 // One shared state for all quads - we don't need the correct details 4288 // One shared state for all quads - we don't need the correct details
4289 test_data.shared_quad_state = SharedQuadState::Create(); 4289 test_data->shared_quad_state = SharedQuadState::Create();
4290 test_data.shared_quad_state->SetAll(gfx::Transform(), 4290 test_data->shared_quad_state->SetAll(gfx::Transform(),
4291 gfx::Size(), 4291 gfx::Size(),
4292 gfx::Rect(), 4292 gfx::Rect(),
4293 gfx::Rect(), 4293 gfx::Rect(),
4294 false, 4294 false,
4295 1.f); 4295 1.f);
4296 4296
4297 const char* current_char = test_script; 4297 const char* current_char = test_script;
4298 4298
4299 // Pre-create root pass 4299 // Pre-create root pass
4300 RenderPass::Id root_render_pass_id = 4300 RenderPass::Id root_render_pass_id =
4301 RenderPass::Id(test_script[0], test_script[1]); 4301 RenderPass::Id(test_script[0], test_script[1]);
4302 scoped_ptr<TestRenderPass> pass = TestRenderPass::Create(); 4302 scoped_ptr<TestRenderPass> pass = TestRenderPass::Create();
4303 pass->SetNew(root_render_pass_id, gfx::Rect(), gfx::Rect(), gfx::Transform()); 4303 pass->SetNew(root_render_pass_id, gfx::Rect(), gfx::Rect(), gfx::Transform());
4304 test_data.render_pass_cache.add(root_render_pass_id, pass.Pass()); 4304 test_data->render_pass_cache.add(root_render_pass_id, pass.Pass());
4305 while (*current_char) { 4305 while (*current_char) {
4306 int layer_id = *current_char; 4306 int layer_id = *current_char;
4307 current_char++; 4307 current_char++;
4308 ASSERT_TRUE(current_char); 4308 ASSERT_TRUE(current_char);
4309 int index = *current_char; 4309 int index = *current_char;
4310 current_char++; 4310 current_char++;
4311 4311
4312 RenderPass::Id render_pass_id = RenderPass::Id(layer_id, index); 4312 RenderPass::Id render_pass_id = RenderPass::Id(layer_id, index);
4313 4313
4314 bool is_replica = false; 4314 bool is_replica = false;
4315 if (!test_data.render_pass_cache.contains(render_pass_id)) 4315 if (!test_data->render_pass_cache.contains(render_pass_id))
4316 is_replica = true; 4316 is_replica = true;
4317 4317
4318 scoped_ptr<TestRenderPass> render_pass = 4318 scoped_ptr<TestRenderPass> render_pass =
4319 test_data.render_pass_cache.take(render_pass_id); 4319 test_data->render_pass_cache.take(render_pass_id);
4320 4320
4321 // Cycle through quad data and create all quads. 4321 // Cycle through quad data and create all quads.
4322 while (*current_char && *current_char != '\n') { 4322 while (*current_char && *current_char != '\n') {
4323 if (*current_char == 's') { 4323 if (*current_char == 's') {
4324 // Solid color draw quad. 4324 // Solid color draw quad.
4325 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); 4325 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
4326 quad->SetNew(test_data.shared_quad_state.get(), 4326 quad->SetNew(test_data->shared_quad_state.get(),
4327 gfx::Rect(0, 0, 10, 10), 4327 gfx::Rect(0, 0, 10, 10),
4328 SK_ColorWHITE); 4328 SK_ColorWHITE);
4329 4329
4330 render_pass->AppendQuad(quad.PassAs<DrawQuad>()); 4330 render_pass->AppendQuad(quad.PassAs<DrawQuad>());
4331 current_char++; 4331 current_char++;
4332 } else if ((*current_char >= 'A') && (*current_char <= 'Z')) { 4332 } else if ((*current_char >= 'A') && (*current_char <= 'Z')) {
4333 // RenderPass draw quad. 4333 // RenderPass draw quad.
4334 int layer_id = *current_char; 4334 int layer_id = *current_char;
4335 current_char++; 4335 current_char++;
4336 ASSERT_TRUE(current_char); 4336 ASSERT_TRUE(current_char);
(...skipping 14 matching lines...) Expand all
4351 case 't': 4351 case 't':
4352 has_texture = true; 4352 has_texture = true;
4353 break; 4353 break;
4354 } 4354 }
4355 current_char++; 4355 current_char++;
4356 } 4356 }
4357 if (*current_char == ']') 4357 if (*current_char == ']')
4358 current_char++; 4358 current_char++;
4359 } 4359 }
4360 4360
4361 if (test_data.render_pass_cache.find(new_render_pass_id) == 4361 if (test_data->render_pass_cache.find(new_render_pass_id) ==
4362 test_data.render_pass_cache.end()) { 4362 test_data->render_pass_cache.end()) {
4363 if (has_texture) 4363 if (has_texture)
4364 renderer->SetHaveCachedResourcesForRenderPassId(new_render_pass_id); 4364 renderer->SetHaveCachedResourcesForRenderPassId(new_render_pass_id);
4365 4365
4366 scoped_ptr<TestRenderPass> pass = TestRenderPass::Create(); 4366 scoped_ptr<TestRenderPass> pass = TestRenderPass::Create();
4367 pass->SetNew(new_render_pass_id, 4367 pass->SetNew(new_render_pass_id,
4368 gfx::Rect(), 4368 gfx::Rect(),
4369 gfx::Rect(), 4369 gfx::Rect(),
4370 gfx::Transform()); 4370 gfx::Transform());
4371 test_data.render_pass_cache.add(new_render_pass_id, pass.Pass()); 4371 test_data->render_pass_cache.add(new_render_pass_id, pass.Pass());
4372 } 4372 }
4373 4373
4374 gfx::Rect quad_rect = gfx::Rect(0, 0, 1, 1); 4374 gfx::Rect quad_rect = gfx::Rect(0, 0, 1, 1);
4375 gfx::Rect contents_changed_rect = 4375 gfx::Rect contents_changed_rect =
4376 contents_changed ? quad_rect : gfx::Rect(); 4376 contents_changed ? quad_rect : gfx::Rect();
4377 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); 4377 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
4378 quad->SetNew(test_data.shared_quad_state.get(), 4378 quad->SetNew(test_data->shared_quad_state.get(),
4379 quad_rect, 4379 quad_rect,
4380 new_render_pass_id, 4380 new_render_pass_id,
4381 is_replica, 4381 is_replica,
4382 1, 4382 1,
4383 contents_changed_rect, 4383 contents_changed_rect,
4384 gfx::RectF(0.f, 0.f, 1.f, 1.f), 4384 gfx::RectF(0.f, 0.f, 1.f, 1.f),
4385 WebKit::WebFilterOperations(), 4385 WebKit::WebFilterOperations(),
4386 skia::RefPtr<SkImageFilter>(), 4386 skia::RefPtr<SkImageFilter>(),
4387 WebKit::WebFilterOperations()); 4387 WebKit::WebFilterOperations());
4388 render_pass->AppendQuad(quad.PassAs<DrawQuad>()); 4388 render_pass->AppendQuad(quad.PassAs<DrawQuad>());
4389 } 4389 }
4390 } 4390 }
4391 test_data.render_passes_by_id[render_pass_id] = render_pass.get(); 4391 test_data->render_passes_by_id[render_pass_id] = render_pass.get();
4392 test_data.render_passes.insert(test_data.render_passes.begin(), 4392 test_data->render_passes.insert(test_data->render_passes.begin(),
4393 render_pass.PassAs<RenderPass>()); 4393 render_pass.PassAs<RenderPass>());
4394 if (*current_char) 4394 if (*current_char)
4395 current_char++; 4395 current_char++;
4396 } 4396 }
4397 } 4397 }
4398 4398
4399 void DumpRenderPassTestData(const RenderPassRemovalTestData& test_data, 4399 void DumpRenderPassTestData(const RenderPassRemovalTestData& test_data,
4400 char* buffer) { 4400 char* buffer) {
4401 char* pos = buffer; 4401 char* pos = buffer;
4402 for (RenderPassList::const_reverse_iterator it = 4402 for (RenderPassList::const_reverse_iterator it =
4403 test_data.render_passes.rbegin(); 4403 test_data.render_passes.rbegin();
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
4599 scoped_ptr<TestRenderer> renderer = 4599 scoped_ptr<TestRenderer> renderer =
4600 TestRenderer::Create(resource_provider.get(), 4600 TestRenderer::Create(resource_provider.get(),
4601 output_surface.get(), 4601 output_surface.get(),
4602 &proxy_); 4602 &proxy_);
4603 4603
4604 int test_case_index = 0; 4604 int test_case_index = 0;
4605 while (remove_render_passes_cases[test_case_index].name) { 4605 while (remove_render_passes_cases[test_case_index].name) {
4606 RenderPassRemovalTestData test_data; 4606 RenderPassRemovalTestData test_data;
4607 ConfigureRenderPassTestData( 4607 ConfigureRenderPassTestData(
4608 remove_render_passes_cases[test_case_index].init_script, 4608 remove_render_passes_cases[test_case_index].init_script,
4609 test_data, 4609 &test_data,
4610 renderer.get()); 4610 renderer.get());
4611 LayerTreeHostImpl::RemoveRenderPasses( 4611 LayerTreeHostImpl::RemoveRenderPasses(
4612 LayerTreeHostImpl::CullRenderPassesWithCachedTextures(renderer.get()), 4612 LayerTreeHostImpl::CullRenderPassesWithCachedTextures(renderer.get()),
4613 &test_data); 4613 &test_data);
4614 VerifyRenderPassTestData(remove_render_passes_cases[test_case_index], 4614 VerifyRenderPassTestData(remove_render_passes_cases[test_case_index],
4615 test_data); 4615 test_data);
4616 test_case_index++; 4616 test_case_index++;
4617 } 4617 }
4618 } 4618 }
4619 4619
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
4954 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), 4954 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(),
4955 render_pass_quad->mask_uv_rect.ToString()); 4955 render_pass_quad->mask_uv_rect.ToString());
4956 4956
4957 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 4957 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
4958 host_impl_->DidDrawAllLayers(frame); 4958 host_impl_->DidDrawAllLayers(frame);
4959 } 4959 }
4960 } 4960 }
4961 4961
4962 } // namespace 4962 } // namespace
4963 } // namespace cc 4963 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/occlusion_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698