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/scrollbar_layer.h" | 5 #include "cc/layers/scrollbar_layer.h" |
6 | 6 |
7 #include "cc/animation/scrollbar_animation_controller.h" | 7 #include "cc/animation/scrollbar_animation_controller.h" |
8 #include "cc/layers/append_quads_data.h" | 8 #include "cc/layers/append_quads_data.h" |
9 #include "cc/layers/scrollbar_layer_impl.h" | 9 #include "cc/layers/scrollbar_layer_impl.h" |
10 #include "cc/quads/solid_color_draw_quad.h" | 10 #include "cc/quads/solid_color_draw_quad.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 scrollbar_layer_impl->SetViewportWithinScrollableArea( | 199 scrollbar_layer_impl->SetViewportWithinScrollableArea( |
200 gfx::RectF(10.f, 0.f, 40.f, 0.f), gfx::SizeF(100.f, 100.f)); | 200 gfx::RectF(10.f, 0.f, 40.f, 0.f), gfx::SizeF(100.f, 100.f)); |
201 | 201 |
202 // Thickness should be overridden to 3. | 202 // Thickness should be overridden to 3. |
203 { | 203 { |
204 MockQuadCuller quad_culler; | 204 MockQuadCuller quad_culler; |
205 AppendQuadsData data; | 205 AppendQuadsData data; |
206 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); | 206 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); |
207 | 207 |
208 const QuadList& quads = quad_culler.quad_list(); | 208 const QuadList& quads = quad_culler.quad_list(); |
209 ASSERT_EQ(1, quads.size()); | 209 ASSERT_EQ(1u, quads.size()); |
210 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); | 210 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); |
211 EXPECT_RECT_EQ(gfx::Rect(1, 0, 4, 3), quads[0]->rect); | 211 EXPECT_RECT_EQ(gfx::Rect(1, 0, 4, 3), quads[0]->rect); |
212 } | 212 } |
213 | 213 |
214 // Contents scale should scale the draw quad. | 214 // Contents scale should scale the draw quad. |
215 scrollbar_layer_impl->draw_properties().contents_scale_x = 2.f; | 215 scrollbar_layer_impl->draw_properties().contents_scale_x = 2.f; |
216 scrollbar_layer_impl->draw_properties().contents_scale_y = 2.f; | 216 scrollbar_layer_impl->draw_properties().contents_scale_y = 2.f; |
217 { | 217 { |
218 MockQuadCuller quad_culler; | 218 MockQuadCuller quad_culler; |
219 AppendQuadsData data; | 219 AppendQuadsData data; |
220 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); | 220 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); |
221 | 221 |
222 const QuadList& quads = quad_culler.quad_list(); | 222 const QuadList& quads = quad_culler.quad_list(); |
223 ASSERT_EQ(1, quads.size()); | 223 ASSERT_EQ(1u, quads.size()); |
224 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); | 224 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); |
225 EXPECT_RECT_EQ(gfx::Rect(2, 0, 8, 6), quads[0]->rect); | 225 EXPECT_RECT_EQ(gfx::Rect(2, 0, 8, 6), quads[0]->rect); |
226 } | 226 } |
227 scrollbar_layer_impl->draw_properties().contents_scale_x = 1.f; | 227 scrollbar_layer_impl->draw_properties().contents_scale_x = 1.f; |
228 scrollbar_layer_impl->draw_properties().contents_scale_y = 1.f; | 228 scrollbar_layer_impl->draw_properties().contents_scale_y = 1.f; |
229 | 229 |
230 // For solid color scrollbars, position and size should reflect the | 230 // For solid color scrollbars, position and size should reflect the |
231 // viewport, not the geometry object. | 231 // viewport, not the geometry object. |
232 scrollbar_layer_impl->SetViewportWithinScrollableArea( | 232 scrollbar_layer_impl->SetViewportWithinScrollableArea( |
233 gfx::RectF(40.f, 0.f, 20.f, 0.f), | 233 gfx::RectF(40.f, 0.f, 20.f, 0.f), |
234 gfx::SizeF(100.f, 100.f)); | 234 gfx::SizeF(100.f, 100.f)); |
235 { | 235 { |
236 MockQuadCuller quad_culler; | 236 MockQuadCuller quad_culler; |
237 AppendQuadsData data; | 237 AppendQuadsData data; |
238 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); | 238 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); |
239 | 239 |
240 const QuadList& quads = quad_culler.quad_list(); | 240 const QuadList& quads = quad_culler.quad_list(); |
241 ASSERT_EQ(1, quads.size()); | 241 ASSERT_EQ(1u, quads.size()); |
242 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); | 242 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); |
243 EXPECT_RECT_EQ(gfx::Rect(4, 0, 2, 3), quads[0]->rect); | 243 EXPECT_RECT_EQ(gfx::Rect(4, 0, 2, 3), quads[0]->rect); |
244 } | 244 } |
245 } | 245 } |
246 | 246 |
247 TEST(ScrollbarLayerTest, LayerDrivenSolidColorDrawQuads) { | 247 TEST(ScrollbarLayerTest, LayerDrivenSolidColorDrawQuads) { |
248 LayerTreeSettings layer_tree_settings; | 248 LayerTreeSettings layer_tree_settings; |
249 layer_tree_settings.solid_color_scrollbars = true; | 249 layer_tree_settings.solid_color_scrollbars = true; |
250 layer_tree_settings.solid_color_scrollbar_thickness_dip = 3; | 250 layer_tree_settings.solid_color_scrollbar_thickness_dip = 3; |
251 FakeImplProxy proxy; | 251 FakeImplProxy proxy; |
(...skipping 11 matching lines...) Expand all Loading... |
263 layer_impl_tree_root->SetMaxScrollOffset(gfx::Vector2d(8, 8)); | 263 layer_impl_tree_root->SetMaxScrollOffset(gfx::Vector2d(8, 8)); |
264 layer_impl_tree_root->SetBounds(gfx::Size(2, 2)); | 264 layer_impl_tree_root->SetBounds(gfx::Size(2, 2)); |
265 layer_impl_tree_root->ScrollBy(gfx::Vector2dF(4.f, 0.f)); | 265 layer_impl_tree_root->ScrollBy(gfx::Vector2dF(4.f, 0.f)); |
266 | 266 |
267 { | 267 { |
268 MockQuadCuller quad_culler; | 268 MockQuadCuller quad_culler; |
269 AppendQuadsData data; | 269 AppendQuadsData data; |
270 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); | 270 scrollbar_layer_impl->AppendQuads(&quad_culler, &data); |
271 | 271 |
272 const QuadList& quads = quad_culler.quad_list(); | 272 const QuadList& quads = quad_culler.quad_list(); |
273 ASSERT_EQ(1, quads.size()); | 273 ASSERT_EQ(1u, quads.size()); |
274 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); | 274 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); |
275 EXPECT_RECT_EQ(gfx::Rect(4, 0, 2, 3), quads[0]->rect); | 275 EXPECT_RECT_EQ(gfx::Rect(4, 0, 2, 3), quads[0]->rect); |
276 } | 276 } |
277 } | 277 } |
278 | 278 |
279 class ScrollbarLayerTestMaxTextureSize : public LayerTreeTest { | 279 class ScrollbarLayerTestMaxTextureSize : public LayerTreeTest { |
280 public: | 280 public: |
281 ScrollbarLayerTestMaxTextureSize() {} | 281 ScrollbarLayerTestMaxTextureSize() {} |
282 | 282 |
283 void SetScrollbarBounds(gfx::Size bounds) { bounds_ = bounds; } | 283 void SetScrollbarBounds(gfx::Size bounds) { bounds_ = bounds; } |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 Initialize(scoped_ptr<Thread>(NULL)); | 343 Initialize(scoped_ptr<Thread>(NULL)); |
344 } | 344 } |
345 }; | 345 }; |
346 | 346 |
347 | 347 |
348 class ScrollbarLayerTestResourceCreation : public testing::Test { | 348 class ScrollbarLayerTestResourceCreation : public testing::Test { |
349 public: | 349 public: |
350 ScrollbarLayerTestResourceCreation() | 350 ScrollbarLayerTestResourceCreation() |
351 : fake_client_(FakeLayerTreeHostClient::DIRECT_3D) {} | 351 : fake_client_(FakeLayerTreeHostClient::DIRECT_3D) {} |
352 | 352 |
353 void TestResourceUpload(int expected_resources) { | 353 void TestResourceUpload(size_t expected_resources) { |
354 layer_tree_host_.reset( | 354 layer_tree_host_.reset( |
355 new MockLayerTreeHost(&fake_client_, layer_tree_settings_)); | 355 new MockLayerTreeHost(&fake_client_, layer_tree_settings_)); |
356 | 356 |
357 scoped_ptr<WebKit::WebScrollbar> scrollbar(FakeWebScrollbar::Create()); | 357 scoped_ptr<WebKit::WebScrollbar> scrollbar(FakeWebScrollbar::Create()); |
358 scoped_refptr<Layer> layer_tree_root = Layer::Create(); | 358 scoped_refptr<Layer> layer_tree_root = Layer::Create(); |
359 scoped_refptr<Layer> content_layer = Layer::Create(); | 359 scoped_refptr<Layer> content_layer = Layer::Create(); |
360 scoped_refptr<Layer> scrollbar_layer = | 360 scoped_refptr<Layer> scrollbar_layer = |
361 ScrollbarLayer::Create(scrollbar.Pass(), | 361 ScrollbarLayer::Create(scrollbar.Pass(), |
362 FakeScrollbarThemePainter::Create(false) | 362 FakeScrollbarThemePainter::Create(false) |
363 .PassAs<ScrollbarThemePainter>(), | 363 .PassAs<ScrollbarThemePainter>(), |
(...skipping 22 matching lines...) Expand all Loading... |
386 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); | 386 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
387 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get()); | 387 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get()); |
388 | 388 |
389 PriorityCalculator calculator; | 389 PriorityCalculator calculator; |
390 ResourceUpdateQueue queue; | 390 ResourceUpdateQueue queue; |
391 OcclusionTracker occlusion_tracker(gfx::Rect(), false); | 391 OcclusionTracker occlusion_tracker(gfx::Rect(), false); |
392 | 392 |
393 scrollbar_layer->SetTexturePriorities(calculator); | 393 scrollbar_layer->SetTexturePriorities(calculator); |
394 layer_tree_host_->contents_texture_manager()->PrioritizeTextures(); | 394 layer_tree_host_->contents_texture_manager()->PrioritizeTextures(); |
395 scrollbar_layer->Update(&queue, &occlusion_tracker, NULL); | 395 scrollbar_layer->Update(&queue, &occlusion_tracker, NULL); |
396 EXPECT_EQ(0, queue.FullUploadSize()); | 396 EXPECT_EQ(0u, queue.FullUploadSize()); |
397 EXPECT_EQ(expected_resources, queue.PartialUploadSize()); | 397 EXPECT_EQ(expected_resources, queue.PartialUploadSize()); |
398 | 398 |
399 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); | 399 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
400 } | 400 } |
401 | 401 |
402 protected: | 402 protected: |
403 FakeLayerTreeHostClient fake_client_; | 403 FakeLayerTreeHostClient fake_client_; |
404 LayerTreeSettings layer_tree_settings_; | 404 LayerTreeSettings layer_tree_settings_; |
405 scoped_ptr<MockLayerTreeHost> layer_tree_host_; | 405 scoped_ptr<MockLayerTreeHost> layer_tree_host_; |
406 }; | 406 }; |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 EXPECT_EQ(10.f, pinch_zoom_horizontal->CurrentPos()); | 476 EXPECT_EQ(10.f, pinch_zoom_horizontal->CurrentPos()); |
477 EXPECT_EQ(100, pinch_zoom_horizontal->TotalSize()); | 477 EXPECT_EQ(100, pinch_zoom_horizontal->TotalSize()); |
478 EXPECT_EQ(30, pinch_zoom_horizontal->Maximum()); | 478 EXPECT_EQ(30, pinch_zoom_horizontal->Maximum()); |
479 EXPECT_EQ(20.f, pinch_zoom_vertical->CurrentPos()); | 479 EXPECT_EQ(20.f, pinch_zoom_vertical->CurrentPos()); |
480 EXPECT_EQ(200, pinch_zoom_vertical->TotalSize()); | 480 EXPECT_EQ(200, pinch_zoom_vertical->TotalSize()); |
481 EXPECT_EQ(50, pinch_zoom_vertical->Maximum()); | 481 EXPECT_EQ(50, pinch_zoom_vertical->Maximum()); |
482 } | 482 } |
483 | 483 |
484 } // namespace | 484 } // namespace |
485 } // namespace cc | 485 } // namespace cc |
OLD | NEW |