Chromium Code Reviews| 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 |