| 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 |