Chromium Code Reviews| Index: cc/layer_tree_host_common.cc |
| diff --git a/cc/layer_tree_host_common.cc b/cc/layer_tree_host_common.cc |
| index bf5ec34892e6931729308e51ce207ea595c40801..30934d2fae7e05d29bf110df08d2813c9f2e551b 100644 |
| --- a/cc/layer_tree_host_common.cc |
| +++ b/cc/layer_tree_host_common.cc |
| @@ -242,7 +242,7 @@ static bool subtreeShouldRenderToSeparateSurface(LayerType* layer, bool axisAlig |
| return true; |
| // If the layer uses a CSS filter. |
| - if (!layer->filters().isEmpty() || !layer->backgroundFilters().isEmpty()) |
| + if (!layer->filters().isEmpty() || !layer->backgroundFilters().isEmpty() || layer->filter()) |
| return true; |
| // If the layer flattens its subtree (i.e. the layer doesn't preserve-3d), but it is |
| @@ -576,7 +576,9 @@ static void calculateDrawTransformsInternal(LayerType* layer, LayerType* rootLay |
| layer->replicaLayer()->maskLayer()->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds())); |
| } |
| - if (layer->filters().hasFilterThatMovesPixels()) |
| + // FIXME: make this smarter for the SkImageFilter case (check for |
| + // pixel-moving filters) |
| + if (layer->filters().hasFilterThatMovesPixels() || layer->filter()) |
|
danakj
2012/10/19 19:34:24
There are a few other places that check for this:
Stephen White
2012/10/19 21:34:50
I think I got them all now. Please let me know if
|
| nearestAncestorThatMovesPixels = renderSurface; |
| // The render surface clipRect is expressed in the space where this surface draws, i.e. the same space as clipRectFromAncestor. |