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 #include "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "cc/tiled_layer.h" | 7 #include "cc/tiled_layer.h" |
8 | 8 |
9 #include "cc/bitmap_content_layer_updater.h" | 9 #include "cc/bitmap_content_layer_updater.h" |
10 #include "cc/layer_painter.h" | 10 #include "cc/layer_painter.h" |
11 #include "cc/overdraw_metrics.h" | 11 #include "cc/overdraw_metrics.h" |
12 #include "cc/rendering_stats.h" | 12 #include "cc/rendering_stats.h" |
| 13 #include "cc/resource_update_controller.h" |
13 #include "cc/single_thread_proxy.h" // For DebugScopedSetImplThread | 14 #include "cc/single_thread_proxy.h" // For DebugScopedSetImplThread |
14 #include "cc/test/animation_test_common.h" | 15 #include "cc/test/animation_test_common.h" |
15 #include "cc/test/fake_graphics_context.h" | 16 #include "cc/test/fake_graphics_context.h" |
16 #include "cc/test/fake_layer_tree_host_client.h" | 17 #include "cc/test/fake_layer_tree_host_client.h" |
17 #include "cc/test/geometry_test_utils.h" | 18 #include "cc/test/geometry_test_utils.h" |
18 #include "cc/test/tiled_layer_test_common.h" | 19 #include "cc/test/tiled_layer_test_common.h" |
19 #include "cc/test/web_compositor_initializer.h" | 20 #include "cc/test/web_compositor_initializer.h" |
20 #include "cc/texture_update_controller.h" | |
21 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
22 #include <public/WebTransformationMatrix.h> | 22 #include <public/WebTransformationMatrix.h> |
23 | 23 |
24 using namespace cc; | 24 using namespace cc; |
25 using namespace WebKitTests; | 25 using namespace WebKitTests; |
26 using WebKit::WebTransformationMatrix; | 26 using WebKit::WebTransformationMatrix; |
27 | 27 |
28 namespace { | 28 namespace { |
29 | 29 |
30 class TestOcclusionTracker : public OcclusionTracker { | 30 class TestOcclusionTracker : public OcclusionTracker { |
(...skipping 13 matching lines...) Expand all Loading... |
44 | 44 |
45 private: | 45 private: |
46 IntRect m_layerClipRectInTarget; | 46 IntRect m_layerClipRectInTarget; |
47 }; | 47 }; |
48 | 48 |
49 class TiledLayerTest : public testing::Test { | 49 class TiledLayerTest : public testing::Test { |
50 public: | 50 public: |
51 TiledLayerTest() | 51 TiledLayerTest() |
52 : m_compositorInitializer(0) | 52 : m_compositorInitializer(0) |
53 , m_context(WebKit::createFakeGraphicsContext()) | 53 , m_context(WebKit::createFakeGraphicsContext()) |
54 , m_queue(make_scoped_ptr(new TextureUpdateQueue)) | 54 , m_queue(make_scoped_ptr(new ResourceUpdateQueue)) |
55 , m_textureManager(PrioritizedTextureManager::create(60*1024*1024, 1024,
Renderer::ContentPool)) | 55 , m_textureManager(PrioritizedTextureManager::create(60*1024*1024, 1024,
Renderer::ContentPool)) |
56 , m_occlusion(0) | 56 , m_occlusion(0) |
57 { | 57 { |
58 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; | 58 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; |
59 m_resourceProvider = ResourceProvider::create(m_context.get()); | 59 m_resourceProvider = ResourceProvider::create(m_context.get()); |
60 } | 60 } |
61 | 61 |
62 virtual ~TiledLayerTest() | 62 virtual ~TiledLayerTest() |
63 { | 63 { |
64 textureManagerClearAllMemory(m_textureManager.get(), m_resourceProvider.
get()); | 64 textureManagerClearAllMemory(m_textureManager.get(), m_resourceProvider.
get()); |
(...skipping 29 matching lines...) Expand all Loading... |
94 void textureManagerClearAllMemory(PrioritizedTextureManager* textureManager,
ResourceProvider* resourceProvider) | 94 void textureManagerClearAllMemory(PrioritizedTextureManager* textureManager,
ResourceProvider* resourceProvider) |
95 { | 95 { |
96 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; | 96 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; |
97 textureManager->clearAllMemory(resourceProvider); | 97 textureManager->clearAllMemory(resourceProvider); |
98 textureManager->reduceMemory(resourceProvider); | 98 textureManager->reduceMemory(resourceProvider); |
99 } | 99 } |
100 void updateTextures() | 100 void updateTextures() |
101 { | 101 { |
102 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; | 102 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; |
103 DCHECK(m_queue); | 103 DCHECK(m_queue); |
104 scoped_ptr<TextureUpdateController> updateController = | 104 scoped_ptr<ResourceUpdateController> updateController = |
105 TextureUpdateController::create( | 105 ResourceUpdateController::create( |
106 NULL, | 106 NULL, |
107 Proxy::implThread(), | 107 Proxy::implThread(), |
108 m_queue.Pass(), | 108 m_queue.Pass(), |
109 m_resourceProvider.get()); | 109 m_resourceProvider.get()); |
110 updateController->finalize(); | 110 updateController->finalize(); |
111 m_queue = make_scoped_ptr(new TextureUpdateQueue); | 111 m_queue = make_scoped_ptr(new ResourceUpdateQueue); |
112 } | 112 } |
113 void layerPushPropertiesTo(FakeTiledLayer* layer, FakeTiledLayerImpl* layerI
mpl) | 113 void layerPushPropertiesTo(FakeTiledLayer* layer, FakeTiledLayerImpl* layerI
mpl) |
114 { | 114 { |
115 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; | 115 DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBloc
ked; |
116 layer->pushPropertiesTo(layerImpl); | 116 layer->pushPropertiesTo(layerImpl); |
117 } | 117 } |
118 void layerUpdate(FakeTiledLayer* layer, TestOcclusionTracker* occluded) | 118 void layerUpdate(FakeTiledLayer* layer, TestOcclusionTracker* occluded) |
119 { | 119 { |
120 DebugScopedSetMainThread mainThread; | 120 DebugScopedSetMainThread mainThread; |
121 layer->update(*m_queue.get(), occluded, m_stats); | 121 layer->update(*m_queue.get(), occluded, m_stats); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 if (layer2) | 153 if (layer2) |
154 layerPushPropertiesTo(layer2, layerImpl2); | 154 layerPushPropertiesTo(layer2, layerImpl2); |
155 | 155 |
156 return needsUpdate; | 156 return needsUpdate; |
157 } | 157 } |
158 | 158 |
159 public: | 159 public: |
160 WebKitTests::WebCompositorInitializer m_compositorInitializer; | 160 WebKitTests::WebCompositorInitializer m_compositorInitializer; |
161 scoped_ptr<GraphicsContext> m_context; | 161 scoped_ptr<GraphicsContext> m_context; |
162 scoped_ptr<ResourceProvider> m_resourceProvider; | 162 scoped_ptr<ResourceProvider> m_resourceProvider; |
163 scoped_ptr<TextureUpdateQueue> m_queue; | 163 scoped_ptr<ResourceUpdateQueue> m_queue; |
164 RenderingStats m_stats; | 164 RenderingStats m_stats; |
165 PriorityCalculator m_priorityCalculator; | 165 PriorityCalculator m_priorityCalculator; |
166 scoped_ptr<PrioritizedTextureManager> m_textureManager; | 166 scoped_ptr<PrioritizedTextureManager> m_textureManager; |
167 TestOcclusionTracker* m_occlusion; | 167 TestOcclusionTracker* m_occlusion; |
168 }; | 168 }; |
169 | 169 |
170 TEST_F(TiledLayerTest, pushDirtyTiles) | 170 TEST_F(TiledLayerTest, pushDirtyTiles) |
171 { | 171 { |
172 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer(
m_textureManager.get())); | 172 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer(
m_textureManager.get())); |
173 ScopedFakeTiledLayerImpl layerImpl(1); | 173 ScopedFakeTiledLayerImpl layerImpl(1); |
(...skipping 1445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1619 updateTextures(); | 1619 updateTextures(); |
1620 | 1620 |
1621 // Invalidate the entire layer in layer space. When painting, the rect given
to webkit should match the layer's bounds. | 1621 // Invalidate the entire layer in layer space. When painting, the rect given
to webkit should match the layer's bounds. |
1622 layer->setNeedsDisplayRect(layerRect); | 1622 layer->setNeedsDisplayRect(layerRect); |
1623 layer->update(*m_queue.get(), 0, m_stats); | 1623 layer->update(*m_queue.get(), 0, m_stats); |
1624 | 1624 |
1625 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); | 1625 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); |
1626 } | 1626 } |
1627 | 1627 |
1628 } // namespace | 1628 } // namespace |
OLD | NEW |