Skip to content

Commit

Permalink
cc: Update draw if external draw constraints change
Browse files Browse the repository at this point in the history
BUG=388056

Review URL: https://codereview.chromium.org/351673008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279497 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
boliu@chromium.org committed Jun 24, 2014
1 parent 874b642 commit ea12b55
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
4 changes: 4 additions & 0 deletions cc/trees/layer_tree_host_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,10 @@ void LayerTreeHostImpl::SetExternalDrawConstraints(
const gfx::Rect& viewport,
const gfx::Rect& clip,
bool valid_for_tile_management) {
if (external_transform_ != transform || external_viewport_ != viewport) {
active_tree_->set_needs_update_draw_properties();
}

external_transform_ = transform;
external_viewport_ = viewport;
external_clip_ = clip;
Expand Down
26 changes: 26 additions & 0 deletions cc/trees/layer_tree_host_impl_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6578,5 +6578,31 @@ TEST_F(LayerTreeHostImplWithImplicitLimitsTest, ImplicitMemoryLimits) {
150u * 1024u * 1024u);
}

TEST_F(LayerTreeHostImplTest, ExternalTransformReflectedInNextDraw) {
const gfx::Size layer_size(100, 100);
gfx::Transform external_transform;
const gfx::Rect external_viewport(layer_size);
const gfx::Rect external_clip(layer_size);
const bool valid_for_tile_management = true;
LayerImpl* layer = SetupScrollAndContentsLayers(layer_size);

host_impl_->SetExternalDrawConstraints(external_transform,
external_viewport,
external_clip,
valid_for_tile_management);
DrawFrame();
EXPECT_TRANSFORMATION_MATRIX_EQ(
external_transform, layer->draw_properties().target_space_transform);

external_transform.Translate(20, 20);
host_impl_->SetExternalDrawConstraints(external_transform,
external_viewport,
external_clip,
valid_for_tile_management);
DrawFrame();
EXPECT_TRANSFORMATION_MATRIX_EQ(
external_transform, layer->draw_properties().target_space_transform);
}

} // namespace
} // namespace cc

0 comments on commit ea12b55

Please sign in to comment.