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

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

Issue 647253002: cc: Stop converting update rect from int to float to int. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: displayrectint: ccperftests Created 6 years, 2 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
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 // Then we set full damage for the next frame. 286 // Then we set full damage for the next frame.
287 host_impl->SetFullRootLayerDamage(); 287 host_impl->SetFullRootLayerDamage();
288 break; 288 break;
289 case 2: 289 case 2:
290 // The whole frame should be damaged as requested. 290 // The whole frame should be damaged as requested.
291 EXPECT_EQ(gfx::RectF(root_surface->content_rect()).ToString(), 291 EXPECT_EQ(gfx::RectF(root_surface->content_rect()).ToString(),
292 root_damage.ToString()); 292 root_damage.ToString());
293 EXPECT_FALSE(frame_data->has_no_damage); 293 EXPECT_FALSE(frame_data->has_no_damage);
294 294
295 // Just a part of the next frame should be damaged. 295 // Just a part of the next frame should be damaged.
296 child_damage_rect_ = gfx::RectF(10, 11, 12, 13); 296 child_damage_rect_ = gfx::Rect(10, 11, 12, 13);
297 break; 297 break;
298 case 3: 298 case 3:
299 // The update rect in the child should be damaged and the damaged area 299 // The update rect in the child should be damaged and the damaged area
300 // should match the invalidation. 300 // should match the invalidation.
301 EXPECT_EQ(gfx::RectF(100+10, 100+11, 12, 13).ToString(), 301 EXPECT_EQ(gfx::RectF(100+10, 100+11, 12, 13).ToString(),
302 root_damage.ToString()); 302 root_damage.ToString());
303 303
304 // TODO(danakj): Remove this when impl side painting is always on. 304 // TODO(danakj): Remove this when impl side painting is always on.
305 if (delegating_renderer() || 305 if (delegating_renderer() ||
306 host_impl->settings().impl_side_painting) { 306 host_impl->settings().impl_side_painting) {
307 // When using a delegating renderer, or using impl side painting, the 307 // When using a delegating renderer, or using impl side painting, the
308 // entire child is considered damaged as we need to replace its 308 // entire child is considered damaged as we need to replace its
309 // resources with newly created ones. The damaged area is kept as it 309 // resources with newly created ones. The damaged area is kept as it
310 // is, but entire child is painted. 310 // is, but entire child is painted.
311 311
312 // The paint rect should match the layer bounds. 312 // The paint rect should match the layer bounds.
313 gfx::RectF paint_rect = child_->LastPaintRect(); 313 gfx::RectF paint_rect = child_->LastPaintRect();
314 paint_rect.set_origin(child_->position()); 314 paint_rect.set_origin(child_->position());
315 EXPECT_EQ(gfx::RectF(100, 100, 30, 30).ToString(), 315 EXPECT_EQ(gfx::RectF(100, 100, 30, 30).ToString(),
316 paint_rect.ToString()); 316 paint_rect.ToString());
317 } 317 }
318 EXPECT_FALSE(frame_data->has_no_damage); 318 EXPECT_FALSE(frame_data->has_no_damage);
319 319
320 // If we damage part of the frame, but also damage the full 320 // If we damage part of the frame, but also damage the full
321 // frame, then the whole frame should be damaged. 321 // frame, then the whole frame should be damaged.
322 child_damage_rect_ = gfx::RectF(10, 11, 12, 13); 322 child_damage_rect_ = gfx::Rect(10, 11, 12, 13);
323 host_impl->SetFullRootLayerDamage(); 323 host_impl->SetFullRootLayerDamage();
324 break; 324 break;
325 case 4: 325 case 4:
326 // The whole frame is damaged. 326 // The whole frame is damaged.
327 EXPECT_EQ(gfx::RectF(root_surface->content_rect()).ToString(), 327 EXPECT_EQ(gfx::RectF(root_surface->content_rect()).ToString(),
328 root_damage.ToString()); 328 root_damage.ToString());
329 EXPECT_FALSE(frame_data->has_no_damage); 329 EXPECT_FALSE(frame_data->has_no_damage);
330 330
331 EndTest(); 331 EndTest();
332 break; 332 break;
333 } 333 }
334 return draw_result; 334 return draw_result;
335 } 335 }
336 336
337 virtual void DidCommitAndDrawFrame() override { 337 virtual void DidCommitAndDrawFrame() override {
338 if (!TestEnded()) 338 if (!TestEnded())
339 layer_tree_host()->SetNeedsCommit(); 339 layer_tree_host()->SetNeedsCommit();
340 340
341 if (!child_damage_rect_.IsEmpty()) { 341 if (!child_damage_rect_.IsEmpty()) {
342 child_->SetNeedsDisplayRect(child_damage_rect_); 342 child_->SetNeedsDisplayRect(child_damage_rect_);
343 child_damage_rect_ = gfx::RectF(); 343 child_damage_rect_ = gfx::Rect();
344 } 344 }
345 } 345 }
346 346
347 virtual void AfterTest() override {} 347 virtual void AfterTest() override {}
348 348
349 FakeContentLayerClient client_; 349 FakeContentLayerClient client_;
350 scoped_refptr<FakeContentLayer> root_; 350 scoped_refptr<FakeContentLayer> root_;
351 scoped_refptr<FakeContentLayer> child_; 351 scoped_refptr<FakeContentLayer> child_;
352 gfx::RectF child_damage_rect_; 352 gfx::Rect child_damage_rect_;
353 }; 353 };
354 354
355 SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(LayerTreeHostDamageTestForcedFullDamage); 355 SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(LayerTreeHostDamageTestForcedFullDamage);
356 356
357 class LayerTreeHostScrollbarDamageTest : public LayerTreeHostDamageTest { 357 class LayerTreeHostScrollbarDamageTest : public LayerTreeHostDamageTest {
358 virtual void SetupTree() override { 358 virtual void SetupTree() override {
359 scoped_refptr<Layer> root_layer = Layer::Create(); 359 scoped_refptr<Layer> root_layer = Layer::Create();
360 root_layer->SetBounds(gfx::Size(400, 400)); 360 root_layer->SetBounds(gfx::Size(400, 400));
361 root_layer->SetMasksToBounds(true); 361 root_layer->SetMasksToBounds(true);
362 layer_tree_host()->SetRootLayer(root_layer); 362 layer_tree_host()->SetRootLayer(root_layer);
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 FakeContentLayerClient client_; 637 FakeContentLayerClient client_;
638 int swap_count_; 638 int swap_count_;
639 int prepare_to_draw_count_; 639 int prepare_to_draw_count_;
640 int update_visible_tile_count_; 640 int update_visible_tile_count_;
641 }; 641 };
642 642
643 MULTI_THREAD_TEST_F(LayerTreeHostDamageTestVisibleTilesStillTriggerDraws); 643 MULTI_THREAD_TEST_F(LayerTreeHostDamageTestVisibleTilesStillTriggerDraws);
644 644
645 } // namespace 645 } // namespace
646 } // namespace cc 646 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698