OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 "cc/layers/nine_patch_layer.h" | 5 #include "cc/layers/nine_patch_layer.h" |
6 | 6 |
7 #include "cc/base/thread.h" | 7 #include "cc/base/thread.h" |
8 #include "cc/debug/overdraw_metrics.h" | 8 #include "cc/debug/overdraw_metrics.h" |
9 #include "cc/resources/prioritized_resource_manager.h" | 9 #include "cc/resources/prioritized_resource_manager.h" |
10 #include "cc/resources/resource_provider.h" | 10 #include "cc/resources/resource_provider.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 EXPECT_EQ(testLayer->layer_tree_host(), layer_tree_host_.get()); | 76 EXPECT_EQ(testLayer->layer_tree_host(), layer_tree_host_.get()); |
77 | 77 |
78 layer_tree_host_->InitializeRendererIfNeeded(); | 78 layer_tree_host_->InitializeRendererIfNeeded(); |
79 | 79 |
80 PriorityCalculator calculator; | 80 PriorityCalculator calculator; |
81 ResourceUpdateQueue queue; | 81 ResourceUpdateQueue queue; |
82 OcclusionTracker occlusionTracker(gfx::Rect(), false); | 82 OcclusionTracker occlusionTracker(gfx::Rect(), false); |
83 | 83 |
84 // No bitmap set should not trigger any uploads. | 84 // No bitmap set should not trigger any uploads. |
85 testLayer->SetTexturePriorities(calculator); | 85 testLayer->SetTexturePriorities(calculator); |
86 testLayer->Update(&queue, &occlusionTracker, NULL); | 86 testLayer->Update(&queue, &occlusionTracker); |
87 EXPECT_EQ(queue.FullUploadSize(), 0); | 87 EXPECT_EQ(queue.FullUploadSize(), 0); |
88 EXPECT_EQ(queue.PartialUploadSize(), 0); | 88 EXPECT_EQ(queue.PartialUploadSize(), 0); |
89 | 89 |
90 // Setting a bitmap set should trigger a single full upload. | 90 // Setting a bitmap set should trigger a single full upload. |
91 SkBitmap bitmap; | 91 SkBitmap bitmap; |
92 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); | 92 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); |
93 bitmap.allocPixels(); | 93 bitmap.allocPixels(); |
94 testLayer->SetBitmap(bitmap, gfx::Rect(5, 5, 1, 1)); | 94 testLayer->SetBitmap(bitmap, gfx::Rect(5, 5, 1, 1)); |
95 testLayer->SetTexturePriorities(calculator); | 95 testLayer->SetTexturePriorities(calculator); |
96 testLayer->Update(&queue, &occlusionTracker, NULL); | 96 testLayer->Update(&queue, &occlusionTracker); |
97 EXPECT_EQ(queue.FullUploadSize(), 1); | 97 EXPECT_EQ(queue.FullUploadSize(), 1); |
98 EXPECT_EQ(queue.PartialUploadSize(), 0); | 98 EXPECT_EQ(queue.PartialUploadSize(), 0); |
99 ResourceUpdate params = queue.TakeFirstFullUpload(); | 99 ResourceUpdate params = queue.TakeFirstFullUpload(); |
100 EXPECT_TRUE(params.texture != NULL); | 100 EXPECT_TRUE(params.texture != NULL); |
101 | 101 |
102 // Upload the texture. | 102 // Upload the texture. |
103 layer_tree_host_->contents_texture_manager()->SetMaxMemoryLimitBytes(1024 *
1024); | 103 layer_tree_host_->contents_texture_manager()->SetMaxMemoryLimitBytes(1024 *
1024); |
104 layer_tree_host_->contents_texture_manager()->PrioritizeTextures(); | 104 layer_tree_host_->contents_texture_manager()->PrioritizeTextures(); |
105 | 105 |
106 scoped_ptr<OutputSurface> outputSurface; | 106 scoped_ptr<OutputSurface> outputSurface; |
107 scoped_ptr<ResourceProvider> resourceProvider; | 107 scoped_ptr<ResourceProvider> resourceProvider; |
108 { | 108 { |
109 DebugScopedSetImplThread implThread(proxy()); | 109 DebugScopedSetImplThread implThread(proxy()); |
110 DebugScopedSetMainThreadBlocked mainThreadBlocked(proxy()); | 110 DebugScopedSetMainThreadBlocked mainThreadBlocked(proxy()); |
111 outputSurface = CreateFakeOutputSurface(); | 111 outputSurface = CreateFakeOutputSurface(); |
112 resourceProvider = ResourceProvider::Create(outputSurface.get()); | 112 resourceProvider = ResourceProvider::Create(outputSurface.get()); |
113 params.texture->AcquireBackingTexture(resourceProvider.get()); | 113 params.texture->AcquireBackingTexture(resourceProvider.get()); |
114 ASSERT_TRUE(params.texture->have_backing_texture()); | 114 ASSERT_TRUE(params.texture->have_backing_texture()); |
115 } | 115 } |
116 | 116 |
117 // Nothing changed, so no repeated upload. | 117 // Nothing changed, so no repeated upload. |
118 testLayer->SetTexturePriorities(calculator); | 118 testLayer->SetTexturePriorities(calculator); |
119 testLayer->Update(&queue, &occlusionTracker, NULL); | 119 testLayer->Update(&queue, &occlusionTracker); |
120 EXPECT_EQ(queue.FullUploadSize(), 0); | 120 EXPECT_EQ(queue.FullUploadSize(), 0); |
121 EXPECT_EQ(queue.PartialUploadSize(), 0); | 121 EXPECT_EQ(queue.PartialUploadSize(), 0); |
122 | 122 |
123 { | 123 { |
124 DebugScopedSetImplThread implThread(proxy()); | 124 DebugScopedSetImplThread implThread(proxy()); |
125 DebugScopedSetMainThreadBlocked mainThreadBlocked(proxy()); | 125 DebugScopedSetMainThreadBlocked mainThreadBlocked(proxy()); |
126 layer_tree_host_->contents_texture_manager()->ClearAllMemory(resourcePro
vider.get()); | 126 layer_tree_host_->contents_texture_manager()->ClearAllMemory(resourcePro
vider.get()); |
127 } | 127 } |
128 | 128 |
129 // Reupload after eviction | 129 // Reupload after eviction |
130 testLayer->SetTexturePriorities(calculator); | 130 testLayer->SetTexturePriorities(calculator); |
131 testLayer->Update(&queue, &occlusionTracker, NULL); | 131 testLayer->Update(&queue, &occlusionTracker); |
132 EXPECT_EQ(queue.FullUploadSize(), 1); | 132 EXPECT_EQ(queue.FullUploadSize(), 1); |
133 EXPECT_EQ(queue.PartialUploadSize(), 0); | 133 EXPECT_EQ(queue.PartialUploadSize(), 0); |
134 | 134 |
135 // PrioritizedResourceManager clearing | 135 // PrioritizedResourceManager clearing |
136 layer_tree_host_->contents_texture_manager()->UnregisterTexture(params.textu
re); | 136 layer_tree_host_->contents_texture_manager()->UnregisterTexture(params.textu
re); |
137 EXPECT_EQ(NULL, params.texture->resource_manager()); | 137 EXPECT_EQ(NULL, params.texture->resource_manager()); |
138 testLayer->SetTexturePriorities(calculator); | 138 testLayer->SetTexturePriorities(calculator); |
139 ResourceUpdateQueue queue2; | 139 ResourceUpdateQueue queue2; |
140 testLayer->Update(&queue2, &occlusionTracker, NULL); | 140 testLayer->Update(&queue2, &occlusionTracker); |
141 EXPECT_EQ(queue2.FullUploadSize(), 1); | 141 EXPECT_EQ(queue2.FullUploadSize(), 1); |
142 EXPECT_EQ(queue2.PartialUploadSize(), 0); | 142 EXPECT_EQ(queue2.PartialUploadSize(), 0); |
143 params = queue2.TakeFirstFullUpload(); | 143 params = queue2.TakeFirstFullUpload(); |
144 EXPECT_TRUE(params.texture != NULL); | 144 EXPECT_TRUE(params.texture != NULL); |
145 EXPECT_EQ(params.texture->resource_manager(), layer_tree_host_->contents_tex
ture_manager()); | 145 EXPECT_EQ(params.texture->resource_manager(), layer_tree_host_->contents_tex
ture_manager()); |
146 } | 146 } |
147 | 147 |
148 } // namespace | 148 } // namespace |
149 } // namespace cc | 149 } // namespace cc |
OLD | NEW |