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

Side by Side Diff: cc/layers/picture_layer_impl.cc

Issue 1213193003: Remove DCHECK_IMPLIES and CHECK_IMPLIES (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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/layers/picture_layer.cc ('k') | cc/layers/picture_layer_impl_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 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/layers/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <set> 10 #include <set>
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 synced_scroll_offset()); 94 synced_scroll_offset());
95 } 95 }
96 96
97 void PictureLayerImpl::PushPropertiesTo(LayerImpl* base_layer) { 97 void PictureLayerImpl::PushPropertiesTo(LayerImpl* base_layer) {
98 PictureLayerImpl* layer_impl = static_cast<PictureLayerImpl*>(base_layer); 98 PictureLayerImpl* layer_impl = static_cast<PictureLayerImpl*>(base_layer);
99 DCHECK_EQ(layer_impl->is_mask_, is_mask_); 99 DCHECK_EQ(layer_impl->is_mask_, is_mask_);
100 100
101 LayerImpl::PushPropertiesTo(base_layer); 101 LayerImpl::PushPropertiesTo(base_layer);
102 102
103 // Twin relationships should never change once established. 103 // Twin relationships should never change once established.
104 DCHECK_IMPLIES(twin_layer_, twin_layer_ == layer_impl); 104 DCHECK(!twin_layer_ || twin_layer_ == layer_impl);
105 DCHECK_IMPLIES(twin_layer_, layer_impl->twin_layer_ == this); 105 DCHECK(!twin_layer_ || layer_impl->twin_layer_ == this);
106 // The twin relationship does not need to exist before the first 106 // The twin relationship does not need to exist before the first
107 // PushPropertiesTo from pending to active layer since before that the active 107 // PushPropertiesTo from pending to active layer since before that the active
108 // layer can not have a pile or tilings, it has only been created and inserted 108 // layer can not have a pile or tilings, it has only been created and inserted
109 // into the tree at that point. 109 // into the tree at that point.
110 twin_layer_ = layer_impl; 110 twin_layer_ = layer_impl;
111 layer_impl->twin_layer_ = this; 111 layer_impl->twin_layer_ = this;
112 112
113 layer_impl->SetNearestNeighbor(nearest_neighbor_); 113 layer_impl->SetNearestNeighbor(nearest_neighbor_);
114 114
115 // Solid color layers have no tilings. 115 // Solid color layers have no tilings.
116 DCHECK_IMPLIES(raster_source_->IsSolidColor(), tilings_->num_tilings() == 0); 116 DCHECK(!raster_source_->IsSolidColor() || tilings_->num_tilings() == 0);
117 // The pending tree should only have a high res (and possibly low res) tiling. 117 // The pending tree should only have a high res (and possibly low res) tiling.
118 DCHECK_LE(tilings_->num_tilings(), 118 DCHECK_LE(tilings_->num_tilings(),
119 layer_tree_impl()->create_low_res_tiling() ? 2u : 1u); 119 layer_tree_impl()->create_low_res_tiling() ? 2u : 1u);
120 120
121 layer_impl->set_gpu_raster_max_texture_size(gpu_raster_max_texture_size_); 121 layer_impl->set_gpu_raster_max_texture_size(gpu_raster_max_texture_size_);
122 layer_impl->UpdateRasterSource(raster_source_, &invalidation_, 122 layer_impl->UpdateRasterSource(raster_source_, &invalidation_,
123 tilings_.get()); 123 tilings_.get());
124 DCHECK(invalidation_.IsEmpty()); 124 DCHECK(invalidation_.IsEmpty());
125 125
126 // After syncing a solid color layer, the active layer has no tilings. 126 // After syncing a solid color layer, the active layer has no tilings.
127 DCHECK_IMPLIES(raster_source_->IsSolidColor(), 127 DCHECK(!raster_source_->IsSolidColor() ||
128 layer_impl->tilings_->num_tilings() == 0); 128 layer_impl->tilings_->num_tilings() == 0);
129 129
130 layer_impl->raster_page_scale_ = raster_page_scale_; 130 layer_impl->raster_page_scale_ = raster_page_scale_;
131 layer_impl->raster_device_scale_ = raster_device_scale_; 131 layer_impl->raster_device_scale_ = raster_device_scale_;
132 layer_impl->raster_source_scale_ = raster_source_scale_; 132 layer_impl->raster_source_scale_ = raster_source_scale_;
133 layer_impl->raster_contents_scale_ = raster_contents_scale_; 133 layer_impl->raster_contents_scale_ = raster_contents_scale_;
134 layer_impl->low_res_raster_contents_scale_ = low_res_raster_contents_scale_; 134 layer_impl->low_res_raster_contents_scale_ = low_res_raster_contents_scale_;
135 135
136 layer_impl->SanityCheckTilingState(); 136 layer_impl->SanityCheckTilingState();
137 137
138 // We always need to push properties. 138 // We always need to push properties.
139 // See http://crbug.com/303943 139 // See http://crbug.com/303943
140 // TODO(danakj): Stop always pushing properties since we don't swap tilings. 140 // TODO(danakj): Stop always pushing properties since we don't swap tilings.
141 needs_push_properties_ = true; 141 needs_push_properties_ = true;
142 } 142 }
143 143
144 void PictureLayerImpl::AppendQuads(RenderPass* render_pass, 144 void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
145 AppendQuadsData* append_quads_data) { 145 AppendQuadsData* append_quads_data) {
146 // The bounds and the pile size may differ if the pile wasn't updated (ie. 146 // The bounds and the pile size may differ if the pile wasn't updated (ie.
147 // PictureLayer::Update didn't happen). In that case the pile will be empty. 147 // PictureLayer::Update didn't happen). In that case the pile will be empty.
148 DCHECK_IMPLIES(!raster_source_->GetSize().IsEmpty(), 148 DCHECK(raster_source_->GetSize().IsEmpty() ||
149 bounds() == raster_source_->GetSize()) 149 bounds() == raster_source_->GetSize())
150 << " bounds " << bounds().ToString() << " pile " 150 << " bounds " << bounds().ToString() << " pile "
151 << raster_source_->GetSize().ToString(); 151 << raster_source_->GetSize().ToString();
152 152
153 SharedQuadState* shared_quad_state = 153 SharedQuadState* shared_quad_state =
154 render_pass->CreateAndAppendSharedQuadState(); 154 render_pass->CreateAndAppendSharedQuadState();
155 155
156 if (raster_source_->IsSolidColor()) { 156 if (raster_source_->IsSolidColor()) {
157 PopulateSharedQuadState(shared_quad_state); 157 PopulateSharedQuadState(shared_quad_state);
158 158
159 AppendDebugBorderQuad( 159 AppendDebugBorderQuad(
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 return nullptr; 502 return nullptr;
503 return twin_layer_; 503 return twin_layer_;
504 } 504 }
505 505
506 void PictureLayerImpl::UpdateRasterSource( 506 void PictureLayerImpl::UpdateRasterSource(
507 scoped_refptr<RasterSource> raster_source, 507 scoped_refptr<RasterSource> raster_source,
508 Region* new_invalidation, 508 Region* new_invalidation,
509 const PictureLayerTilingSet* pending_set) { 509 const PictureLayerTilingSet* pending_set) {
510 // The bounds and the pile size may differ if the pile wasn't updated (ie. 510 // The bounds and the pile size may differ if the pile wasn't updated (ie.
511 // PictureLayer::Update didn't happen). In that case the pile will be empty. 511 // PictureLayer::Update didn't happen). In that case the pile will be empty.
512 DCHECK_IMPLIES(!raster_source->GetSize().IsEmpty(), 512 DCHECK(raster_source->GetSize().IsEmpty() ||
513 bounds() == raster_source->GetSize()) 513 bounds() == raster_source->GetSize())
514 << " bounds " << bounds().ToString() << " pile " 514 << " bounds " << bounds().ToString() << " pile "
515 << raster_source->GetSize().ToString(); 515 << raster_source->GetSize().ToString();
516 516
517 // The |raster_source_| is initially null, so have to check for that for the 517 // The |raster_source_| is initially null, so have to check for that for the
518 // first frame. 518 // first frame.
519 bool could_have_tilings = raster_source_.get() && CanHaveTilings(); 519 bool could_have_tilings = raster_source_.get() && CanHaveTilings();
520 raster_source_.swap(raster_source); 520 raster_source_.swap(raster_source);
521 521
522 // The |new_invalidation| must be cleared before updating tilings since they 522 // The |new_invalidation| must be cleared before updating tilings since they
523 // access the invalidation through the PictureLayerTilingClient interface. 523 // access the invalidation through the PictureLayerTilingClient interface.
524 invalidation_.Clear(); 524 invalidation_.Clear();
525 invalidation_.Swap(new_invalidation); 525 invalidation_.Swap(new_invalidation);
526 526
527 bool can_have_tilings = CanHaveTilings(); 527 bool can_have_tilings = CanHaveTilings();
528 DCHECK_IMPLIES( 528 DCHECK(!pending_set ||
529 pending_set, 529 can_have_tilings == GetPendingOrActiveTwinLayer()->CanHaveTilings());
530 can_have_tilings == GetPendingOrActiveTwinLayer()->CanHaveTilings());
531 530
532 // Need to call UpdateTiles again if CanHaveTilings changed. 531 // Need to call UpdateTiles again if CanHaveTilings changed.
533 if (could_have_tilings != can_have_tilings) 532 if (could_have_tilings != can_have_tilings)
534 layer_tree_impl()->set_needs_update_draw_properties(); 533 layer_tree_impl()->set_needs_update_draw_properties();
535 534
536 if (!can_have_tilings) { 535 if (!can_have_tilings) {
537 RemoveAllTilings(); 536 RemoveAllTilings();
538 return; 537 return;
539 } 538 }
540 539
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 // Under no circumstance should we be larger than the max texture size. 749 // Under no circumstance should we be larger than the max texture size.
751 tile_width = std::min(tile_width, max_texture_size); 750 tile_width = std::min(tile_width, max_texture_size);
752 tile_height = std::min(tile_height, max_texture_size); 751 tile_height = std::min(tile_height, max_texture_size);
753 return gfx::Size(tile_width, tile_height); 752 return gfx::Size(tile_width, tile_height);
754 } 753 }
755 754
756 void PictureLayerImpl::GetContentsResourceId(ResourceId* resource_id, 755 void PictureLayerImpl::GetContentsResourceId(ResourceId* resource_id,
757 gfx::Size* resource_size) const { 756 gfx::Size* resource_size) const {
758 // The bounds and the pile size may differ if the pile wasn't updated (ie. 757 // The bounds and the pile size may differ if the pile wasn't updated (ie.
759 // PictureLayer::Update didn't happen). In that case the pile will be empty. 758 // PictureLayer::Update didn't happen). In that case the pile will be empty.
760 DCHECK_IMPLIES(!raster_source_->GetSize().IsEmpty(), 759 DCHECK(raster_source_->GetSize().IsEmpty() ||
761 bounds() == raster_source_->GetSize()) 760 bounds() == raster_source_->GetSize())
762 << " bounds " << bounds().ToString() << " pile " 761 << " bounds " << bounds().ToString() << " pile "
763 << raster_source_->GetSize().ToString(); 762 << raster_source_->GetSize().ToString();
764 gfx::Rect content_rect(bounds()); 763 gfx::Rect content_rect(bounds());
765 PictureLayerTilingSet::CoverageIterator iter( 764 PictureLayerTilingSet::CoverageIterator iter(
766 tilings_.get(), 1.f, content_rect, ideal_contents_scale_); 765 tilings_.get(), 1.f, content_rect, ideal_contents_scale_);
767 766
768 // Mask resource not ready yet. 767 // Mask resource not ready yet.
769 if (!iter || !*iter) { 768 if (!iter || !*iter) {
770 *resource_id = 0; 769 *resource_id = 0;
771 return; 770 return;
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 1234
1236 bool PictureLayerImpl::IsOnActiveOrPendingTree() const { 1235 bool PictureLayerImpl::IsOnActiveOrPendingTree() const {
1237 return !layer_tree_impl()->IsRecycleTree(); 1236 return !layer_tree_impl()->IsRecycleTree();
1238 } 1237 }
1239 1238
1240 bool PictureLayerImpl::HasValidTilePriorities() const { 1239 bool PictureLayerImpl::HasValidTilePriorities() const {
1241 return IsOnActiveOrPendingTree() && IsDrawnRenderSurfaceLayerListMember(); 1240 return IsOnActiveOrPendingTree() && IsDrawnRenderSurfaceLayerListMember();
1242 } 1241 }
1243 1242
1244 } // namespace cc 1243 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer.cc ('k') | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698