Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4472)

Unified Diff: cc/layers/delegated_renderer_layer_impl.cc

Issue 313403005: Revert of Invert DSF to map from delegated frame to layer space (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/delegated_renderer_layer_impl.h ('k') | cc/layers/delegated_renderer_layer_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/delegated_renderer_layer_impl.cc
diff --git a/cc/layers/delegated_renderer_layer_impl.cc b/cc/layers/delegated_renderer_layer_impl.cc
index d5fdec7a745d4690e71447621698e21d23238fe7..f59e1f2c1da785613c631d44f316f7a555519c35 100644
--- a/cc/layers/delegated_renderer_layer_impl.cc
+++ b/cc/layers/delegated_renderer_layer_impl.cc
@@ -20,11 +20,10 @@
namespace cc {
-DelegatedRendererLayerImpl::DelegatedRendererLayerImpl(LayerTreeImpl* tree_impl,
- int id)
+DelegatedRendererLayerImpl::DelegatedRendererLayerImpl(
+ LayerTreeImpl* tree_impl, int id)
: LayerImpl(tree_impl, id),
have_render_passes_to_push_(false),
- inverse_device_scale_factor_(1.0f),
child_id_(0),
own_child_id_(false) {
}
@@ -142,14 +141,13 @@
resources_.swap(resources_in_frame);
resource_provider->DeclareUsedResourcesFromChild(child_id_, resources_);
- inverse_device_scale_factor_ = 1.0f / frame_data->device_scale_factor;
// Display size is already set so we can compute what the damage rect
// will be in layer space. The damage may exceed the visible portion of
// the frame, so intersect the damage to the layer's bounds.
RenderPass* new_root_pass = render_pass_list.back();
gfx::Size frame_size = new_root_pass->output_rect.size();
- gfx::RectF damage_in_layer = damage_in_frame;
- damage_in_layer.Scale(inverse_device_scale_factor_);
+ gfx::RectF damage_in_layer = MathUtil::MapClippedRect(
+ DelegatedFrameToLayerSpaceTransform(frame_size), damage_in_frame);
SetUpdateRect(gfx::IntersectRects(
gfx::UnionRects(update_rect(), damage_in_layer), gfx::Rect(bounds())));
@@ -198,6 +196,17 @@
ClearChildId();
}
+gfx::Transform DelegatedRendererLayerImpl::DelegatedFrameToLayerSpaceTransform(
+ const gfx::Size& frame_size) const {
+ gfx::Size display_size = display_size_.IsEmpty() ? bounds() : display_size_;
+
+ gfx::Transform delegated_frame_to_layer_space_transform;
+ delegated_frame_to_layer_space_transform.Scale(
+ static_cast<double>(display_size.width()) / frame_size.width(),
+ static_cast<double>(display_size.height()) / frame_size.height());
+ return delegated_frame_to_layer_space_transform;
+}
+
static inline int IndexToId(int index) { return index + 1; }
static inline int IdToIndex(int id) { return id - 1; }
@@ -233,9 +242,9 @@
const RenderPass* root_delegated_render_pass =
render_passes_in_draw_order_.back();
gfx::Size frame_size = root_delegated_render_pass->output_rect.size();
- gfx::Transform delegated_frame_to_root_transform = screen_space_transform();
- delegated_frame_to_root_transform.Scale(inverse_device_scale_factor_,
- inverse_device_scale_factor_);
+ gfx::Transform delegated_frame_to_root_transform =
+ screen_space_transform() *
+ DelegatedFrameToLayerSpaceTransform(frame_size);
for (size_t i = 0; i < render_passes_in_draw_order_.size() - 1; ++i) {
RenderPass::Id output_render_pass_id(-1, -1);
@@ -407,9 +416,8 @@
// Don't allow areas inside the bounds that are empty.
DCHECK(display_size_.IsEmpty() ||
gfx::Rect(display_size_).Contains(gfx::Rect(bounds())));
- gfx::Transform delegated_frame_to_target_transform = draw_transform();
- delegated_frame_to_target_transform.Scale(inverse_device_scale_factor_,
- inverse_device_scale_factor_);
+ gfx::Transform delegated_frame_to_target_transform =
+ draw_transform() * DelegatedFrameToLayerSpaceTransform(frame_size);
output_shared_quad_state->content_to_target_transform.ConcatTransform(
delegated_frame_to_target_transform);
« no previous file with comments | « cc/layers/delegated_renderer_layer_impl.h ('k') | cc/layers/delegated_renderer_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698