Index: cc/layers/layer.cc |
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
index 44c71e5f409e06c38d28eebf749a94c1ec08a65c..6ce3054388682e042f3aa59361abaf7012774723 100644 |
--- a/cc/layers/layer.cc |
+++ b/cc/layers/layer.cc |
@@ -58,6 +58,7 @@ Layer::Layer() |
draw_checkerboard_for_missing_tiles_(false), |
force_render_surface_(false), |
is_3d_sorted_(false), |
+ transform_is_invertible_(true), |
anchor_point_(0.5f, 0.5f), |
background_color_(0), |
opacity_(1.f), |
@@ -604,6 +605,7 @@ void Layer::SetTransform(const gfx::Transform& transform) { |
if (transform_ == transform) |
return; |
transform_ = transform; |
+ transform_is_invertible_ = transform.IsInvertible(); |
SetNeedsCommit(); |
} |
@@ -944,7 +946,7 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
layer->SetIs3dSorted(is_3d_sorted_); |
layer->SetUseParentBackfaceVisibility(use_parent_backface_visibility_); |
if (!layer->TransformIsAnimatingOnImplOnly() && !TransformIsAnimating()) |
- layer->SetTransform(transform_); |
+ layer->SetTransformAndInvertibility(transform_, transform_is_invertible_); |
DCHECK(!(TransformIsAnimating() && layer->TransformIsAnimatingOnImplOnly())); |
layer->SetScrollClipLayer(scroll_clip_layer_id_); |