| Index: cc/layers/render_surface_impl.cc
|
| diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
|
| index cc1f28ee8a73ba950d48a185776e069e6069b30c..1a3845b6cb10e208584aeaac65c3e1931e7394d4 100644
|
| --- a/cc/layers/render_surface_impl.cc
|
| +++ b/cc/layers/render_surface_impl.cc
|
| @@ -32,8 +32,7 @@
|
| namespace cc {
|
|
|
| RenderSurfaceImpl::RenderSurfaceImpl(LayerImpl* owning_layer)
|
| - : owning_layer_(owning_layer),
|
| - layer_tree_impl_(owning_layer->layer_tree_impl()),
|
| + : layer_tree_impl_(owning_layer->layer_tree_impl()),
|
| stable_effect_id_(owning_layer->id()),
|
| effect_tree_index_(EffectTree::kInvalidNodeId),
|
| surface_property_changed_(false),
|
| @@ -82,11 +81,8 @@ gfx::RectF RenderSurfaceImpl::DrawableContentRect() const {
|
| gfx::Rect surface_content_rect = content_rect();
|
| const FilterOperations& filters = Filters();
|
| if (!filters.IsEmpty()) {
|
| - const gfx::Transform& owning_layer_draw_transform =
|
| - owning_layer_->DrawTransform();
|
| - DCHECK(owning_layer_draw_transform.IsScale2d());
|
| - surface_content_rect = filters.MapRect(
|
| - surface_content_rect, owning_layer_draw_transform.matrix());
|
| + surface_content_rect =
|
| + filters.MapRect(surface_content_rect, FiltersTransform().matrix());
|
| }
|
| gfx::RectF drawable_content_rect = MathUtil::MapClippedRect(
|
| draw_transform(), gfx::RectF(surface_content_rect));
|
| @@ -140,7 +136,10 @@ gfx::PointF RenderSurfaceImpl::FiltersOrigin() const {
|
| }
|
|
|
| gfx::Transform RenderSurfaceImpl::FiltersTransform() const {
|
| - return owning_layer_->DrawTransform();
|
| + gfx::Transform filters_transform;
|
| + filters_transform.Scale(OwningEffectNode()->surface_contents_scale.x(),
|
| + OwningEffectNode()->surface_contents_scale.y());
|
| + return filters_transform;
|
| }
|
|
|
| const FilterOperations& RenderSurfaceImpl::BackgroundFilters() const {
|
| @@ -319,7 +318,6 @@ bool RenderSurfaceImpl::SurfacePropertyChanged() const {
|
| // - all other property changes come from the surface's property tree nodes
|
| // (or some ancestor node that propagates its change to one of these nodes).
|
| //
|
| - DCHECK(owning_layer_);
|
| return surface_property_changed_ || AncestorPropertyChanged();
|
| }
|
|
|
| @@ -392,31 +390,24 @@ void RenderSurfaceImpl::AppendQuads(RenderPass* render_pass,
|
| ResourceId mask_resource_id = 0;
|
| gfx::Size mask_texture_size;
|
| gfx::Vector2dF mask_uv_scale;
|
| - gfx::Transform owning_layer_draw_transform = owning_layer_->DrawTransform();
|
| + gfx::Vector2dF surface_contents_scale =
|
| + OwningEffectNode()->surface_contents_scale;
|
| LayerImpl* mask_layer = MaskLayer();
|
| if (mask_layer && mask_layer->DrawsContent() &&
|
| !mask_layer->bounds().IsEmpty()) {
|
| mask_layer->GetContentsResourceId(&mask_resource_id, &mask_texture_size);
|
| - gfx::Vector2dF owning_layer_draw_scale =
|
| - MathUtil::ComputeTransform2dScaleComponents(owning_layer_draw_transform,
|
| - 1.f);
|
| gfx::SizeF unclipped_mask_target_size = gfx::ScaleSize(
|
| gfx::SizeF(OwningEffectNode()->unscaled_mask_target_size),
|
| - owning_layer_draw_scale.x(), owning_layer_draw_scale.y());
|
| + surface_contents_scale.x(), surface_contents_scale.y());
|
| mask_uv_scale = gfx::Vector2dF(1.0f / unclipped_mask_target_size.width(),
|
| 1.0f / unclipped_mask_target_size.height());
|
| }
|
|
|
| - DCHECK(owning_layer_draw_transform.IsScale2d());
|
| - gfx::Vector2dF owning_layer_to_target_scale =
|
| - owning_layer_draw_transform.Scale2d();
|
| -
|
| RenderPassDrawQuad* quad =
|
| render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
|
| quad->SetNew(shared_quad_state, content_rect(), visible_layer_rect,
|
| GetRenderPassId(), mask_resource_id, mask_uv_scale,
|
| - mask_texture_size, owning_layer_to_target_scale,
|
| - FiltersOrigin());
|
| + mask_texture_size, surface_contents_scale, FiltersOrigin());
|
| }
|
|
|
| } // namespace cc
|
|
|