Index: cc/layers/layer.cc |
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
index a9e59d35ed8007322e6961899eb8ad625c2e9b8a..733ecd2dbc6d4eca593b8c0fc9a1a1d4e875677d 100644 |
--- a/cc/layers/layer.cc |
+++ b/cc/layers/layer.cc |
@@ -59,6 +59,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), |
@@ -605,6 +606,7 @@ void Layer::SetTransform(const gfx::Transform& transform) { |
if (transform_ == transform) |
return; |
transform_ = transform; |
+ transform_is_invertible_ = transform.IsInvertible(); |
SetNeedsCommit(); |
} |
@@ -920,7 +922,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_); |