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 |