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

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

Issue 1013273003: cc: Force an update on tile size after viewport resize (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: only call if on pending tree Created 5 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
« no previous file with comments | « cc/layers/picture_layer_impl.h ('k') | cc/trees/layer_tree_host_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 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 // that this is at the expense of doing cause more frequent re-painting. A 383 // that this is at the expense of doing cause more frequent re-painting. A
384 // better scheme would be to maintain a tighter visible_content_rect for the 384 // better scheme would be to maintain a tighter visible_content_rect for the
385 // finer tilings. 385 // finer tilings.
386 CleanUpTilingsOnActiveLayer(last_append_quads_tilings_); 386 CleanUpTilingsOnActiveLayer(last_append_quads_tilings_);
387 } 387 }
388 388
389 bool PictureLayerImpl::UpdateTiles(bool resourceless_software_draw) { 389 bool PictureLayerImpl::UpdateTiles(bool resourceless_software_draw) {
390 DCHECK_EQ(1.f, contents_scale_x()); 390 DCHECK_EQ(1.f, contents_scale_x());
391 DCHECK_EQ(1.f, contents_scale_y()); 391 DCHECK_EQ(1.f, contents_scale_y());
392 392
393 // GPU rasterization can cause a tile size change when the viewport changes.
394 // Ensure that the tiling's texture sizes are correct after a viewport resize
395 // by tracking the last viewport rect and updating the current raster source,
396 // which will in turn update the tiling's texture size.
397 if (!last_viewport_size_.IsEmpty() &&
danakj 2015/03/18 21:46:14 This looks like it should be below the !CanHaveTil
hendrikw 2015/03/18 22:06:31 Yeah, you're right.
398 last_viewport_size_ != layer_tree_impl()->device_viewport_size() &&
399 layer_tree_impl()->IsPendingTree()) {
400 tilings_->UpdateTilingsToCurrentRasterSource(
vmpstr 2015/03/18 21:36:39 In "typical" situations where the device viewport
danakj 2015/03/18 21:46:14 What if there's no pending tree (commit to active,
hendrikw 2015/03/18 22:06:31 Yeah, my first change (https://codereview.chromium
401 raster_source_, nullptr, invalidation_, MinimumContentsScale(),
402 MaximumContentsScale());
403 }
404 last_viewport_size_ = layer_tree_impl()->device_viewport_size();
405
393 if (!resourceless_software_draw) { 406 if (!resourceless_software_draw) {
394 visible_rect_for_tile_priority_ = visible_content_rect(); 407 visible_rect_for_tile_priority_ = visible_content_rect();
395 } 408 }
396 409
397 if (!CanHaveTilings()) { 410 if (!CanHaveTilings()) {
398 ideal_page_scale_ = 0.f; 411 ideal_page_scale_ = 0.f;
399 ideal_device_scale_ = 0.f; 412 ideal_device_scale_ = 0.f;
400 ideal_contents_scale_ = 0.f; 413 ideal_contents_scale_ = 0.f;
401 ideal_source_scale_ = 0.f; 414 ideal_source_scale_ = 0.f;
402 SanityCheckTilingState(); 415 SanityCheckTilingState();
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after
1228 1241
1229 bool PictureLayerImpl::IsOnActiveOrPendingTree() const { 1242 bool PictureLayerImpl::IsOnActiveOrPendingTree() const {
1230 return !layer_tree_impl()->IsRecycleTree(); 1243 return !layer_tree_impl()->IsRecycleTree();
1231 } 1244 }
1232 1245
1233 bool PictureLayerImpl::HasValidTilePriorities() const { 1246 bool PictureLayerImpl::HasValidTilePriorities() const {
1234 return IsOnActiveOrPendingTree() && IsDrawnRenderSurfaceLayerListMember(); 1247 return IsOnActiveOrPendingTree() && IsDrawnRenderSurfaceLayerListMember();
1235 } 1248 }
1236 1249
1237 } // namespace cc 1250 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl.h ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698