| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 #ifndef CC_TREES_LAYER_TREE_HOST_COMMON_H_ | 5 #ifndef CC_TREES_LAYER_TREE_HOST_COMMON_H_ |
| 6 #define CC_TREES_LAYER_TREE_HOST_COMMON_H_ | 6 #define CC_TREES_LAYER_TREE_HOST_COMMON_H_ |
| 7 | 7 |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 13 #include "cc/base/cc_export.h" | 13 #include "cc/base/cc_export.h" |
| 14 #include "cc/base/scoped_ptr_vector.h" | 14 #include "cc/base/scoped_ptr_vector.h" |
| 15 #include "cc/layers/layer_lists.h" | 15 #include "cc/layers/layer_lists.h" |
| 16 #include "cc/trees/property_tree.h" |
| 16 #include "ui/gfx/geometry/rect.h" | 17 #include "ui/gfx/geometry/rect.h" |
| 17 #include "ui/gfx/geometry/vector2d.h" | 18 #include "ui/gfx/geometry/vector2d.h" |
| 18 #include "ui/gfx/transform.h" | 19 #include "ui/gfx/transform.h" |
| 19 | 20 |
| 20 namespace cc { | 21 namespace cc { |
| 21 | 22 |
| 22 class LayerImpl; | 23 class LayerImpl; |
| 23 class Layer; | 24 class Layer; |
| 24 class SwapPromise; | 25 class SwapPromise; |
| 26 class PropertyTrees; |
| 25 | 27 |
| 26 class CC_EXPORT LayerTreeHostCommon { | 28 class CC_EXPORT LayerTreeHostCommon { |
| 27 public: | 29 public: |
| 28 static gfx::Rect CalculateVisibleRect(const gfx::Rect& target_surface_rect, | 30 static gfx::Rect CalculateVisibleRect(const gfx::Rect& target_surface_rect, |
| 29 const gfx::Rect& layer_bound_rect, | 31 const gfx::Rect& layer_bound_rect, |
| 30 const gfx::Transform& transform); | 32 const gfx::Transform& transform); |
| 31 | 33 |
| 32 template <typename LayerType, typename RenderSurfaceLayerListType> | 34 template <typename LayerType, typename RenderSurfaceLayerListType> |
| 33 struct CalcDrawPropsInputs { | 35 struct CalcDrawPropsInputs { |
| 34 public: | 36 public: |
| 35 CalcDrawPropsInputs(LayerType* root_layer, | 37 CalcDrawPropsInputs(LayerType* root_layer, |
| 36 const gfx::Size& device_viewport_size, | 38 const gfx::Size& device_viewport_size, |
| 37 const gfx::Transform& device_transform, | 39 const gfx::Transform& device_transform, |
| 38 float device_scale_factor, | 40 float device_scale_factor, |
| 39 float page_scale_factor, | 41 float page_scale_factor, |
| 40 const LayerType* page_scale_application_layer, | 42 const LayerType* page_scale_application_layer, |
| 41 const gfx::Vector2dF& elastic_overscroll, | 43 const gfx::Vector2dF& elastic_overscroll, |
| 42 const LayerType* elastic_overscroll_application_layer, | 44 const LayerType* elastic_overscroll_application_layer, |
| 43 int max_texture_size, | 45 int max_texture_size, |
| 44 bool can_use_lcd_text, | 46 bool can_use_lcd_text, |
| 45 bool layers_always_allowed_lcd_text, | 47 bool layers_always_allowed_lcd_text, |
| 46 bool can_render_to_separate_surface, | 48 bool can_render_to_separate_surface, |
| 47 bool can_adjust_raster_scales, | 49 bool can_adjust_raster_scales, |
| 48 bool verify_property_trees, | 50 bool verify_property_trees, |
| 49 RenderSurfaceLayerListType* render_surface_layer_list, | 51 RenderSurfaceLayerListType* render_surface_layer_list, |
| 50 int current_render_surface_layer_list_id) | 52 int current_render_surface_layer_list_id, |
| 53 PropertyTrees* property_trees) |
| 51 : root_layer(root_layer), | 54 : root_layer(root_layer), |
| 52 device_viewport_size(device_viewport_size), | 55 device_viewport_size(device_viewport_size), |
| 53 device_transform(device_transform), | 56 device_transform(device_transform), |
| 54 device_scale_factor(device_scale_factor), | 57 device_scale_factor(device_scale_factor), |
| 55 page_scale_factor(page_scale_factor), | 58 page_scale_factor(page_scale_factor), |
| 56 page_scale_application_layer(page_scale_application_layer), | 59 page_scale_application_layer(page_scale_application_layer), |
| 57 elastic_overscroll(elastic_overscroll), | 60 elastic_overscroll(elastic_overscroll), |
| 58 elastic_overscroll_application_layer( | 61 elastic_overscroll_application_layer( |
| 59 elastic_overscroll_application_layer), | 62 elastic_overscroll_application_layer), |
| 60 max_texture_size(max_texture_size), | 63 max_texture_size(max_texture_size), |
| 61 can_use_lcd_text(can_use_lcd_text), | 64 can_use_lcd_text(can_use_lcd_text), |
| 62 layers_always_allowed_lcd_text(layers_always_allowed_lcd_text), | 65 layers_always_allowed_lcd_text(layers_always_allowed_lcd_text), |
| 63 can_render_to_separate_surface(can_render_to_separate_surface), | 66 can_render_to_separate_surface(can_render_to_separate_surface), |
| 64 can_adjust_raster_scales(can_adjust_raster_scales), | 67 can_adjust_raster_scales(can_adjust_raster_scales), |
| 65 verify_property_trees(verify_property_trees), | 68 verify_property_trees(verify_property_trees), |
| 66 render_surface_layer_list(render_surface_layer_list), | 69 render_surface_layer_list(render_surface_layer_list), |
| 67 current_render_surface_layer_list_id( | 70 current_render_surface_layer_list_id( |
| 68 current_render_surface_layer_list_id) {} | 71 current_render_surface_layer_list_id), |
| 72 property_trees(property_trees) {} |
| 69 | 73 |
| 70 LayerType* root_layer; | 74 LayerType* root_layer; |
| 71 gfx::Size device_viewport_size; | 75 gfx::Size device_viewport_size; |
| 72 const gfx::Transform& device_transform; | 76 const gfx::Transform& device_transform; |
| 73 float device_scale_factor; | 77 float device_scale_factor; |
| 74 float page_scale_factor; | 78 float page_scale_factor; |
| 75 const LayerType* page_scale_application_layer; | 79 const LayerType* page_scale_application_layer; |
| 76 gfx::Vector2dF elastic_overscroll; | 80 gfx::Vector2dF elastic_overscroll; |
| 77 const LayerType* elastic_overscroll_application_layer; | 81 const LayerType* elastic_overscroll_application_layer; |
| 78 int max_texture_size; | 82 int max_texture_size; |
| 79 bool can_use_lcd_text; | 83 bool can_use_lcd_text; |
| 80 bool layers_always_allowed_lcd_text; | 84 bool layers_always_allowed_lcd_text; |
| 81 bool can_render_to_separate_surface; | 85 bool can_render_to_separate_surface; |
| 82 bool can_adjust_raster_scales; | 86 bool can_adjust_raster_scales; |
| 83 bool verify_property_trees; | 87 bool verify_property_trees; |
| 84 RenderSurfaceLayerListType* render_surface_layer_list; | 88 RenderSurfaceLayerListType* render_surface_layer_list; |
| 85 int current_render_surface_layer_list_id; | 89 int current_render_surface_layer_list_id; |
| 90 PropertyTrees* property_trees; |
| 86 }; | 91 }; |
| 87 | 92 |
| 88 template <typename LayerType, typename RenderSurfaceLayerListType> | 93 template <typename LayerType, typename RenderSurfaceLayerListType> |
| 89 struct CalcDrawPropsInputsForTesting | 94 struct CalcDrawPropsInputsForTesting |
| 90 : public CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType> { | 95 : public CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType> { |
| 91 CalcDrawPropsInputsForTesting( | 96 CalcDrawPropsInputsForTesting( |
| 92 LayerType* root_layer, | 97 LayerType* root_layer, |
| 93 const gfx::Size& device_viewport_size, | 98 const gfx::Size& device_viewport_size, |
| 94 const gfx::Transform& device_transform, | 99 const gfx::Transform& device_transform, |
| 95 RenderSurfaceLayerListType* render_surface_layer_list); | 100 RenderSurfaceLayerListType* render_surface_layer_list); |
| 96 CalcDrawPropsInputsForTesting( | 101 CalcDrawPropsInputsForTesting( |
| 97 LayerType* root_layer, | 102 LayerType* root_layer, |
| 98 const gfx::Size& device_viewport_size, | 103 const gfx::Size& device_viewport_size, |
| 99 RenderSurfaceLayerListType* render_surface_layer_list); | 104 RenderSurfaceLayerListType* render_surface_layer_list); |
| 100 | 105 |
| 101 private: | 106 private: |
| 102 const gfx::Transform identity_transform_; | 107 const gfx::Transform identity_transform_; |
| 108 PropertyTrees property_trees; |
| 103 }; | 109 }; |
| 104 | 110 |
| 105 typedef CalcDrawPropsInputs<Layer, RenderSurfaceLayerList> | 111 typedef CalcDrawPropsInputs<Layer, RenderSurfaceLayerList> |
| 106 CalcDrawPropsMainInputs; | 112 CalcDrawPropsMainInputs; |
| 107 typedef CalcDrawPropsInputsForTesting<Layer, RenderSurfaceLayerList> | 113 typedef CalcDrawPropsInputsForTesting<Layer, RenderSurfaceLayerList> |
| 108 CalcDrawPropsMainInputsForTesting; | 114 CalcDrawPropsMainInputsForTesting; |
| 109 static void UpdateRenderSurfaces(Layer* root_layer, | 115 static void UpdateRenderSurfaces(Layer* root_layer, |
| 110 bool can_render_to_separate_surface, | 116 bool can_render_to_separate_surface, |
| 111 const gfx::Transform& transform, | 117 const gfx::Transform& transform, |
| 112 bool preserves_2d_axis_alignment); | 118 bool preserves_2d_axis_alignment); |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 NULL, | 250 NULL, |
| 245 gfx::Vector2dF(), | 251 gfx::Vector2dF(), |
| 246 NULL, | 252 NULL, |
| 247 std::numeric_limits<int>::max() / 2, | 253 std::numeric_limits<int>::max() / 2, |
| 248 false, | 254 false, |
| 249 false, | 255 false, |
| 250 true, | 256 true, |
| 251 false, | 257 false, |
| 252 true, | 258 true, |
| 253 render_surface_layer_list, | 259 render_surface_layer_list, |
| 254 0) { | 260 0, |
| 261 &property_trees) { |
| 255 DCHECK(root_layer); | 262 DCHECK(root_layer); |
| 256 DCHECK(render_surface_layer_list); | 263 DCHECK(render_surface_layer_list); |
| 257 } | 264 } |
| 258 | 265 |
| 259 template <typename LayerType, typename RenderSurfaceLayerListType> | 266 template <typename LayerType, typename RenderSurfaceLayerListType> |
| 260 LayerTreeHostCommon::CalcDrawPropsInputsForTesting<LayerType, | 267 LayerTreeHostCommon::CalcDrawPropsInputsForTesting<LayerType, |
| 261 RenderSurfaceLayerListType>:: | 268 RenderSurfaceLayerListType>:: |
| 262 CalcDrawPropsInputsForTesting( | 269 CalcDrawPropsInputsForTesting( |
| 263 LayerType* root_layer, | 270 LayerType* root_layer, |
| 264 const gfx::Size& device_viewport_size, | 271 const gfx::Size& device_viewport_size, |
| 265 RenderSurfaceLayerListType* render_surface_layer_list) | 272 RenderSurfaceLayerListType* render_surface_layer_list) |
| 266 : CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType>( | 273 : CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType>( |
| 267 root_layer, | 274 root_layer, |
| 268 device_viewport_size, | 275 device_viewport_size, |
| 269 identity_transform_, | 276 identity_transform_, |
| 270 1.f, | 277 1.f, |
| 271 1.f, | 278 1.f, |
| 272 NULL, | 279 NULL, |
| 273 gfx::Vector2dF(), | 280 gfx::Vector2dF(), |
| 274 NULL, | 281 NULL, |
| 275 std::numeric_limits<int>::max() / 2, | 282 std::numeric_limits<int>::max() / 2, |
| 276 false, | 283 false, |
| 277 false, | 284 false, |
| 278 true, | 285 true, |
| 279 false, | 286 false, |
| 280 true, | 287 true, |
| 281 render_surface_layer_list, | 288 render_surface_layer_list, |
| 282 0) { | 289 0, |
| 290 &property_trees) { |
| 283 DCHECK(root_layer); | 291 DCHECK(root_layer); |
| 284 DCHECK(render_surface_layer_list); | 292 DCHECK(render_surface_layer_list); |
| 285 } | 293 } |
| 286 | 294 |
| 287 } // namespace cc | 295 } // namespace cc |
| 288 | 296 |
| 289 #endif // CC_TREES_LAYER_TREE_HOST_COMMON_H_ | 297 #endif // CC_TREES_LAYER_TREE_HOST_COMMON_H_ |
| OLD | NEW |