diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-22 01:16:43 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-22 01:21:15 +0000 |
commit | d5467eb7835eccd7b1e1a65096c9b1f37c70fcb2 (patch) | |
tree | db295fcc90bc936cf52818bffd73d7560c80f0f3 /cc/layers/tiled_layer.cc | |
parent | 903cf847d2d66f33e1f2cdab5f45a1b07558fa7a (diff) | |
download | chromium_src-d5467eb7835eccd7b1e1a65096c9b1f37c70fcb2.zip chromium_src-d5467eb7835eccd7b1e1a65096c9b1f37c70fcb2.tar.gz chromium_src-d5467eb7835eccd7b1e1a65096c9b1f37c70fcb2.tar.bz2 |
cc: Replace Region with SimpleEnclosedRegion for occlusion tracking
Instead of using an arbitrary Region, which is costly (slow), use
a new SimpleEnclosedRegion. This class tracks only a single Rect
at a given time so it is very fast and small. It tries to get
something like the largest rect enclosed in the actual Region
(were we to track such a Region) in an online fashion, ie it
doesn't remember anything except its current largest possible
rect.
BUG=405663
Review URL: https://codereview.chromium.org/202523002
Cr-Commit-Position: refs/heads/master@{#291292}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291292 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layers/tiled_layer.cc')
-rw-r--r-- | cc/layers/tiled_layer.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/cc/layers/tiled_layer.cc b/cc/layers/tiled_layer.cc index c1937e4..4a960a8 100644 --- a/cc/layers/tiled_layer.cc +++ b/cc/layers/tiled_layer.cc @@ -10,6 +10,7 @@ #include "base/auto_reset.h" #include "base/basictypes.h" #include "build/build_config.h" +#include "cc/base/simple_enclosed_region.h" #include "cc/layers/layer_impl.h" #include "cc/layers/tiled_layer_impl.h" #include "cc/resources/layer_updater.h" @@ -639,11 +640,11 @@ void TiledLayer::SetTexturePriorities(const PriorityCalculator& priority_calc) { } } -Region TiledLayer::VisibleContentOpaqueRegion() const { +SimpleEnclosedRegion TiledLayer::VisibleContentOpaqueRegion() const { if (skips_draw_) - return Region(); + return SimpleEnclosedRegion(); if (contents_opaque()) - return visible_content_rect(); + return SimpleEnclosedRegion(visible_content_rect()); return tiler_->OpaqueRegionInContentRect(visible_content_rect()); } |