diff options
author | ajuma <ajuma@chromium.org> | 2015-11-30 11:43:44 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-30 19:45:05 +0000 |
commit | d9432e3c14de1f2a4b04a5fa5c96ab73d9d9d86e (patch) | |
tree | d71b9a227b940decd452f4546361e786a59b3750 /cc/layers/render_surface_impl.cc | |
parent | 1dd1fc030f7d06669a1de1538edbaa4723c3e4e1 (diff) | |
download | chromium_src-d9432e3c14de1f2a4b04a5fa5c96ab73d9d9d86e.zip chromium_src-d9432e3c14de1f2a4b04a5fa5c96ab73d9d9d86e.tar.gz chromium_src-d9432e3c14de1f2a4b04a5fa5c96ab73d9d9d86e.tar.bz2 |
cc: Fix draw transform computation for non-drawn layers
When property trees are enabled, draw properties are only
computed for drawn layers. This means that when a non-drawn
layer's draw transform is needed, it must be computed
on-demand using the transform tree rather than being read
from the layer's draw properties.
BUG=560275
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1479883002
Cr-Commit-Position: refs/heads/master@{#362196}
Diffstat (limited to 'cc/layers/render_surface_impl.cc')
-rw-r--r-- | cc/layers/render_surface_impl.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc index d9eeb84..d93e052 100644 --- a/cc/layers/render_surface_impl.cc +++ b/cc/layers/render_surface_impl.cc @@ -18,6 +18,8 @@ #include "cc/quads/render_pass_draw_quad.h" #include "cc/quads/shared_quad_state.h" #include "cc/trees/damage_tracker.h" +#include "cc/trees/draw_property_utils.h" +#include "cc/trees/layer_tree_impl.h" #include "cc/trees/occlusion.h" #include "third_party/skia/include/core/SkImageFilter.h" #include "ui/gfx/geometry/rect_conversions.h" @@ -224,12 +226,13 @@ 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(); 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); + MathUtil::ComputeTransform2dScaleComponents(owning_layer_draw_transform, + 1.f); gfx::SizeF unclipped_mask_target_size = gfx::ScaleSize( gfx::SizeF(owning_layer_->bounds()), owning_layer_draw_scale.x(), owning_layer_draw_scale.y()); @@ -240,7 +243,7 @@ void RenderSurfaceImpl::AppendQuads(RenderPass* render_pass, DCHECK(owning_layer_->draw_properties().target_space_transform.IsScale2d()); gfx::Vector2dF owning_layer_to_target_scale = - owning_layer_->draw_properties().target_space_transform.Scale2d(); + owning_layer_draw_transform.Scale2d(); RenderPassDrawQuad* quad = render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |