OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 2018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2029 } | 2029 } |
2030 } | 2030 } |
2031 // Add an entry to the cache. | 2031 // Add an entry to the cache. |
2032 cached_data_.draw_transforms[transform_id].push_back(DrawTransformData()); | 2032 cached_data_.draw_transforms[transform_id].push_back(DrawTransformData()); |
2033 DrawTransformData& data = cached_data_.draw_transforms[transform_id].back(); | 2033 DrawTransformData& data = cached_data_.draw_transforms[transform_id].back(); |
2034 data.update_number = -1; | 2034 data.update_number = -1; |
2035 data.target_id = dest_id; | 2035 data.target_id = dest_id; |
2036 return data; | 2036 return data; |
2037 } | 2037 } |
2038 | 2038 |
2039 ClipRectData& PropertyTrees::FetchClipRectFromCache(int clip_id, | |
weiliangc
2017/03/14 22:04:30
Could we return pointer here to make cache miss mo
jaydasika
2017/03/16 20:33:31
I haven't tried it, so I don't know if it effects
| |
2040 int target_id) { | |
2041 ClipNode* clip_node = clip_tree.Node(clip_id); | |
2042 for (auto& data : clip_node->cached_clip_rects) { | |
2043 if (data.target_id == target_id || data.target_id == -1) | |
2044 return data; | |
2045 } | |
2046 clip_node->cached_clip_rects.push_back(ClipRectData()); | |
2047 return clip_node->cached_clip_rects.back(); | |
2048 } | |
2049 | |
2039 DrawTransforms& PropertyTrees::GetDrawTransforms(int transform_id, | 2050 DrawTransforms& PropertyTrees::GetDrawTransforms(int transform_id, |
2040 int effect_id) const { | 2051 int effect_id) const { |
2041 const EffectNode* effect_node = effect_tree.Node(effect_id); | 2052 const EffectNode* effect_node = effect_tree.Node(effect_id); |
2042 int dest_id = effect_node->transform_id; | 2053 int dest_id = effect_node->transform_id; |
2043 | 2054 |
2044 DrawTransformData& data = | 2055 DrawTransformData& data = |
2045 FetchDrawTransformsDataFromCache(transform_id, dest_id); | 2056 FetchDrawTransformsDataFromCache(transform_id, dest_id); |
2046 | 2057 |
2047 DCHECK(data.update_number != cached_data_.transform_tree_update_number || | 2058 DCHECK(data.update_number != cached_data_.transform_tree_update_number || |
2048 data.target_id != EffectTree::kInvalidNodeId); | 2059 data.target_id != EffectTree::kInvalidNodeId); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2114 const EffectNode* effect_node = effect_tree.Node(effect_id); | 2125 const EffectNode* effect_node = effect_tree.Node(effect_id); |
2115 | 2126 |
2116 if (effect_node->surface_contents_scale.x() != 0.0 && | 2127 if (effect_node->surface_contents_scale.x() != 0.0 && |
2117 effect_node->surface_contents_scale.y() != 0.0) | 2128 effect_node->surface_contents_scale.y() != 0.0) |
2118 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), | 2129 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), |
2119 1.0 / effect_node->surface_contents_scale.y()); | 2130 1.0 / effect_node->surface_contents_scale.y()); |
2120 return screen_space_transform; | 2131 return screen_space_transform; |
2121 } | 2132 } |
2122 | 2133 |
2123 } // namespace cc | 2134 } // namespace cc |
OLD | NEW |