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

Unified Diff: cc/trees/draw_property_utils.cc

Issue 2032213002: cc: Put to_target and to_screen behind an accessor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Put target_id behind accessor Created 4 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 | « no previous file | cc/trees/property_tree.h » ('j') | cc/trees/property_tree.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/draw_property_utils.cc
diff --git a/cc/trees/draw_property_utils.cc b/cc/trees/draw_property_utils.cc
index 0cd7b3c9dfe1df9749383160f4fa8309a60460b2..df4571c6616916f696b804b32901fbd1676a5bb9 100644
--- a/cc/trees/draw_property_utils.cc
+++ b/cc/trees/draw_property_utils.cc
@@ -167,9 +167,10 @@ void CalculateVisibleRects(
}
// The clip rect should be intersected with layer rect in target space.
- gfx::Transform content_to_target = non_root_surfaces_enabled
- ? transform_node->data.to_target
- : transform_node->data.to_screen;
+ gfx::Transform content_to_target =
+ non_root_surfaces_enabled
+ ? transform_tree.ToTarget(layer->transform_tree_index())
+ : transform_tree.ToScreen(layer->transform_tree_index());
content_to_target.Translate(layer->offset_to_transform_parent().x(),
layer->offset_to_transform_parent().y());
@@ -252,7 +253,7 @@ static bool IsLayerBackFaceVisible(LayerType* layer,
const TransformNode* node = tree.Node(transform_tree_index);
return layer->use_local_transform_for_backface_visibility()
? node->data.local.IsBackFaceVisible()
- : node->data.to_target.IsBackFaceVisible();
+ : tree.ToTarget(transform_tree_index).IsBackFaceVisible();
}
static inline bool TransformToScreenIsKnown(Layer* layer,
@@ -485,7 +486,8 @@ void ComputeClips(ClipTree* clip_tree,
if (clip_node->data.resets_clip && non_root_surfaces_enabled) {
if (clip_node->data.applies_local_clip) {
clip_node->data.clip_in_target_space = MathUtil::MapClippedRect(
- transform_node->data.to_target, clip_node->data.clip);
+ transform_tree.ToTarget(clip_node->data.transform_id),
+ clip_node->data.clip);
ResetIfHasNanCoordinate(&clip_node->data.clip_in_target_space);
clip_node->data.combined_clip_in_target_space =
gfx::IntersectRects(clip_node->data.clip_in_target_space,
@@ -518,10 +520,12 @@ void ComputeClips(ClipTree* clip_tree,
gfx::Transform source_to_target;
if (!non_root_surfaces_enabled) {
- source_to_target = transform_node->data.to_screen;
+ source_to_target =
+ transform_tree.ToScreen(clip_node->data.transform_id);
} else if (transform_node->data.content_target_id ==
clip_node->data.target_id) {
- source_to_target = transform_node->data.to_target;
+ source_to_target =
+ transform_tree.ToTarget(clip_node->data.transform_id);
} else {
success = transform_tree.ComputeTransformWithDestinationSublayerScale(
transform_node->id, clip_node->data.target_id, &source_to_target);
@@ -876,7 +880,7 @@ gfx::Transform DrawTransform(const LayerImpl* layer,
if (!owns_non_root_surface) {
// If you're not the root, or you don't own a surface, you need to apply
// your local offset.
- xform = node->data.to_target;
+ xform = tree.ToTarget(layer->transform_tree_index());
if (layer->should_flatten_transform_from_property_tree())
xform.FlattenTo2d();
xform.Translate(layer->offset_to_transform_parent().x(),
@@ -898,7 +902,7 @@ static void SetSurfaceDrawTransform(const TransformTree& tree,
}
gfx::Transform render_surface_transform;
- const TransformNode* target_node = tree.Node(node->data.target_id);
+ const TransformNode* target_node = tree.Node(tree.TargetId(node->id));
tree.ComputeTransformWithDestinationSublayerScale(node->id, target_node->id,
&render_surface_transform);
if (node->data.sublayer_scale.x() != 0.0 &&
@@ -926,7 +930,8 @@ static void SetSurfaceClipRect(const ClipNode* parent_clip_node,
const TransformNode* transform_node =
transform_tree.Node(render_surface->TransformTreeIndex());
- if (transform_node->data.target_id == parent_clip_node->data.target_id) {
+ if (transform_tree.TargetId(transform_node->id) ==
+ parent_clip_node->data.target_id) {
render_surface->SetClipRect(
gfx::ToEnclosingRect(parent_clip_node->data.clip_in_target_space));
return;
@@ -938,7 +943,8 @@ static void SetSurfaceClipRect(const ClipNode* parent_clip_node,
gfx::Transform clip_parent_target_to_target;
const bool success =
transform_tree.ComputeTransformWithDestinationSublayerScale(
- parent_clip_node->data.target_id, transform_node->data.target_id,
+ parent_clip_node->data.target_id,
+ transform_tree.TargetId(transform_node->id),
&clip_parent_target_to_target);
if (!success) {
@@ -946,7 +952,8 @@ static void SetSurfaceClipRect(const ClipNode* parent_clip_node,
return;
}
- DCHECK_LT(parent_clip_node->data.target_id, transform_node->data.target_id);
+ DCHECK_LT(parent_clip_node->data.target_id,
+ transform_tree.TargetId(transform_node->id));
render_surface->SetClipRect(gfx::ToEnclosingRect(MathUtil::ProjectClippedRect(
clip_parent_target_to_target,
parent_clip_node->data.clip_in_target_space)));
@@ -954,10 +961,10 @@ static void SetSurfaceClipRect(const ClipNode* parent_clip_node,
template <typename LayerType>
static gfx::Transform ScreenSpaceTransformInternal(LayerType* layer,
- const TransformNode* node) {
+ const TransformTree& tree) {
gfx::Transform xform(1, 0, 0, 1, layer->offset_to_transform_parent().x(),
layer->offset_to_transform_parent().y());
- gfx::Transform ssxform = node->data.to_screen;
+ gfx::Transform ssxform = tree.ToScreen(layer->transform_tree_index());
xform.ConcatTransform(ssxform);
if (layer->should_flatten_transform_from_property_tree())
xform.FlattenTo2d();
@@ -966,14 +973,12 @@ static gfx::Transform ScreenSpaceTransformInternal(LayerType* layer,
gfx::Transform ScreenSpaceTransform(const Layer* layer,
const TransformTree& tree) {
- return ScreenSpaceTransformInternal(layer,
- tree.Node(layer->transform_tree_index()));
+ return ScreenSpaceTransformInternal(layer, tree);
}
gfx::Transform ScreenSpaceTransform(const LayerImpl* layer,
const TransformTree& tree) {
- return ScreenSpaceTransformInternal(layer,
- tree.Node(layer->transform_tree_index()));
+ return ScreenSpaceTransformInternal(layer, tree);
}
static float LayerDrawOpacity(const LayerImpl* layer, const EffectTree& tree) {
@@ -1081,7 +1086,7 @@ void ComputeLayerDrawProperties(LayerImpl* layer,
property_trees->clip_tree.Node(layer->clip_tree_index());
layer->draw_properties().screen_space_transform =
- ScreenSpaceTransformInternal(layer, transform_node);
+ ScreenSpaceTransformInternal(layer, property_trees->transform_tree);
if (property_trees->non_root_surfaces_enabled) {
layer->draw_properties().target_space_transform =
DrawTransform(layer, property_trees->transform_tree);
« no previous file with comments | « no previous file | cc/trees/property_tree.h » ('j') | cc/trees/property_tree.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698