Adding Peter Thatcher to the owners file.
[chromium-blink-merge.git] / cc / test / layer_tree_host_common_test.h
blobd899baba0169989b0476eb8822e76f86437b1c1d
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
3 // found in the LICENSE file.
5 #ifndef CC_TEST_LAYER_TREE_HOST_COMMON_TEST_H_
6 #define CC_TEST_LAYER_TREE_HOST_COMMON_TEST_H_
8 #include <vector>
10 #include "base/memory/scoped_ptr.h"
11 #include "cc/layers/layer_lists.h"
12 #include "cc/test/fake_layer_tree_host_client.h"
13 #include "testing/gtest/include/gtest/gtest.h"
15 namespace gfx {
16 class PointF;
17 class Point3F;
18 class Size;
19 class Transform;
22 namespace cc {
24 class FakeLayerTreeHost;
25 class Layer;
26 class LayerImpl;
27 class RenderSurfaceLayerList;
29 class LayerTreeHostCommonTestBase {
30 protected:
31 LayerTreeHostCommonTestBase();
32 virtual ~LayerTreeHostCommonTestBase();
34 template <typename LayerType>
35 void SetLayerPropertiesForTestingInternal(
36 LayerType* layer,
37 const gfx::Transform& transform,
38 const gfx::Point3F& transform_origin,
39 const gfx::PointF& position,
40 const gfx::Size& bounds,
41 bool flatten_transform,
42 bool is_3d_sorted) {
43 layer->SetTransform(transform);
44 layer->SetTransformOrigin(transform_origin);
45 layer->SetPosition(position);
46 layer->SetBounds(bounds);
47 layer->SetShouldFlattenTransform(flatten_transform);
48 layer->Set3dSortingContextId(is_3d_sorted ? 1 : 0);
51 void SetLayerPropertiesForTesting(Layer* layer,
52 const gfx::Transform& transform,
53 const gfx::Point3F& transform_origin,
54 const gfx::PointF& position,
55 const gfx::Size& bounds,
56 bool flatten_transform,
57 bool is_3d_sorted);
59 void SetLayerPropertiesForTesting(LayerImpl* layer,
60 const gfx::Transform& transform,
61 const gfx::Point3F& transform_origin,
62 const gfx::PointF& position,
63 const gfx::Size& bounds,
64 bool flatten_transform,
65 bool is_3d_sorted,
66 bool create_render_surface);
68 void ExecuteCalculateDrawProperties(Layer* root_layer,
69 float device_scale_factor,
70 float page_scale_factor,
71 Layer* page_scale_application_layer,
72 bool can_use_lcd_text,
73 bool layers_always_allowed_lcd_text);
75 void ExecuteCalculateDrawProperties(LayerImpl* root_layer,
76 float device_scale_factor,
77 float page_scale_factor,
78 LayerImpl* page_scale_application_layer,
79 bool can_use_lcd_text,
80 bool layers_always_allowed_lcd_text);
82 template <class LayerType>
83 void ExecuteCalculateDrawProperties(LayerType* root_layer) {
84 LayerType* page_scale_application_layer = NULL;
85 ExecuteCalculateDrawProperties(root_layer, 1.f, 1.f,
86 page_scale_application_layer, false, false);
89 template <class LayerType>
90 void ExecuteCalculateDrawProperties(LayerType* root_layer,
91 float device_scale_factor) {
92 LayerType* page_scale_application_layer = NULL;
93 ExecuteCalculateDrawProperties(root_layer, device_scale_factor, 1.f,
94 page_scale_application_layer, false, false);
97 template <class LayerType>
98 void ExecuteCalculateDrawProperties(LayerType* root_layer,
99 float device_scale_factor,
100 float page_scale_factor,
101 LayerType* page_scale_application_layer) {
102 ExecuteCalculateDrawProperties(root_layer, device_scale_factor,
103 page_scale_factor,
104 page_scale_application_layer, false, false);
107 RenderSurfaceLayerList* render_surface_layer_list() const {
108 return render_surface_layer_list_.get();
111 LayerImplList* render_surface_layer_list_impl() const {
112 return render_surface_layer_list_impl_.get();
115 int render_surface_layer_list_count() const {
116 return render_surface_layer_list_count_;
119 scoped_ptr<FakeLayerTreeHost> CreateFakeLayerTreeHost();
121 private:
122 scoped_ptr<RenderSurfaceLayerList> render_surface_layer_list_;
123 scoped_ptr<std::vector<LayerImpl*>> render_surface_layer_list_impl_;
125 FakeLayerTreeHostClient client_;
126 int render_surface_layer_list_count_;
129 class LayerTreeHostCommonTest : public LayerTreeHostCommonTestBase,
130 public testing::Test {};
132 } // namespace cc
134 #endif // CC_TEST_LAYER_TREE_HOST_COMMON_TEST_H_