| 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/quads/draw_quad.h" | 5 #include "cc/quads/draw_quad.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 386 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
| 387 | 387 |
| 388 #define CREATE_QUAD_15_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) \ | 388 #define CREATE_QUAD_15_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) \ |
| 389 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 389 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
| 390 { \ | 390 { \ |
| 391 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ | 391 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ |
| 392 h, i, j, k, l, m, n, o); \ | 392 h, i, j, k, l, m, n, o); \ |
| 393 } \ | 393 } \ |
| 394 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 394 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
| 395 | 395 |
| 396 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \ | 396 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, h, copy_a) \ |
| 397 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 397 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
| 398 { \ | 398 { \ |
| 399 QUAD_DATA quad_all->SetAll(shared_state, \ | 399 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \ |
| 400 quad_rect, \ | 400 quad_visible_rect, needs_blending, a, b, c, d, \ |
| 401 quad_opaque_rect, \ | 401 e, f, g, h); \ |
| 402 quad_visible_rect, \ | 402 } \ |
| 403 needs_blending, \ | |
| 404 a, \ | |
| 405 b, \ | |
| 406 c, \ | |
| 407 d, \ | |
| 408 e, \ | |
| 409 f, \ | |
| 410 g); \ | |
| 411 } \ | |
| 412 SETUP_AND_COPY_QUAD_ALL_RP(Type, quad_all, copy_a); | 403 SETUP_AND_COPY_QUAD_ALL_RP(Type, quad_all, copy_a); |
| 413 | 404 |
| 414 #define CREATE_QUAD_NEW_RP(Type, a, b, c, d, e, f, g, h, copy_a) \ | 405 #define CREATE_QUAD_NEW_RP(Type, a, b, c, d, e, f, g, h, i, copy_a) \ |
| 415 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 406 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
| 416 { \ | 407 { \ |
| 417 QUAD_DATA quad_new->SetNew( \ | 408 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ |
| 418 shared_state, quad_rect, a, b, c, d, e, f, g, h); \ | 409 h, i); \ |
| 419 } \ | 410 } \ |
| 420 SETUP_AND_COPY_QUAD_NEW_RP(Type, quad_new, copy_a); | 411 SETUP_AND_COPY_QUAD_NEW_RP(Type, quad_new, copy_a); |
| 421 | 412 |
| 422 TEST(DrawQuadTest, CopyDebugBorderDrawQuad) { | 413 TEST(DrawQuadTest, CopyDebugBorderDrawQuad) { |
| 423 gfx::Rect visible_rect(40, 50, 30, 20); | 414 gfx::Rect visible_rect(40, 50, 30, 20); |
| 424 SkColor color = 0xfabb0011; | 415 SkColor color = 0xfabb0011; |
| 425 int width = 99; | 416 int width = 99; |
| 426 CREATE_SHARED_STATE(); | 417 CREATE_SHARED_STATE(); |
| 427 | 418 |
| 428 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); | 419 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); |
| 429 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); | 420 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); |
| 430 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 421 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
| 431 EXPECT_EQ(color, copy_quad->color); | 422 EXPECT_EQ(color, copy_quad->color); |
| 432 EXPECT_EQ(width, copy_quad->width); | 423 EXPECT_EQ(width, copy_quad->width); |
| 433 | 424 |
| 434 CREATE_QUAD_2_ALL(DebugBorderDrawQuad, color, width); | 425 CREATE_QUAD_2_ALL(DebugBorderDrawQuad, color, width); |
| 435 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); | 426 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); |
| 436 EXPECT_EQ(color, copy_quad->color); | 427 EXPECT_EQ(color, copy_quad->color); |
| 437 EXPECT_EQ(width, copy_quad->width); | 428 EXPECT_EQ(width, copy_quad->width); |
| 438 } | 429 } |
| 439 | 430 |
| 440 TEST(DrawQuadTest, CopyRenderPassDrawQuad) { | 431 TEST(DrawQuadTest, CopyRenderPassDrawQuad) { |
| 441 gfx::Rect visible_rect(40, 50, 30, 20); | 432 gfx::Rect visible_rect(40, 50, 30, 20); |
| 442 RenderPassId render_pass_id(22, 64); | 433 RenderPassId render_pass_id(22, 64); |
| 443 ResourceId mask_resource_id = 78; | 434 ResourceId mask_resource_id = 78; |
| 444 gfx::Vector2dF mask_uv_scale(33.f, 19.f); | 435 gfx::Vector2dF mask_uv_scale(33.f, 19.f); |
| 445 gfx::Size mask_texture_size(128, 134); | 436 gfx::Size mask_texture_size(128, 134); |
| 446 FilterOperations filters; | 437 FilterOperations filters; |
| 447 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | 438 filters.Append(FilterOperation::CreateBlurFilter(1.f)); |
| 448 gfx::Vector2dF filters_scale; | 439 gfx::Vector2dF filters_scale; |
| 440 gfx::PointF filters_origin; |
| 449 FilterOperations background_filters; | 441 FilterOperations background_filters; |
| 450 background_filters.Append( | 442 background_filters.Append( |
| 451 FilterOperation::CreateGrayscaleFilter(1.f)); | 443 FilterOperation::CreateGrayscaleFilter(1.f)); |
| 452 | 444 |
| 453 RenderPassId copied_render_pass_id(235, 11); | 445 RenderPassId copied_render_pass_id(235, 11); |
| 454 CREATE_SHARED_STATE(); | 446 CREATE_SHARED_STATE(); |
| 455 | 447 |
| 456 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, | 448 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, visible_rect, render_pass_id, |
| 457 visible_rect, | 449 mask_resource_id, mask_uv_scale, mask_texture_size, |
| 458 render_pass_id, | 450 filters, filters_scale, filters_origin, background_filters, |
| 459 mask_resource_id, | |
| 460 mask_uv_scale, | |
| 461 mask_texture_size, | |
| 462 filters, | |
| 463 filters_scale, | |
| 464 background_filters, | |
| 465 copied_render_pass_id); | 451 copied_render_pass_id); |
| 466 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); | 452 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); |
| 467 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 453 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
| 468 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); | 454 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); |
| 469 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); | 455 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); |
| 470 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); | 456 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); |
| 471 EXPECT_EQ(mask_texture_size.ToString(), | 457 EXPECT_EQ(mask_texture_size.ToString(), |
| 472 copy_quad->mask_texture_size.ToString()); | 458 copy_quad->mask_texture_size.ToString()); |
| 473 EXPECT_EQ(filters, copy_quad->filters); | 459 EXPECT_EQ(filters, copy_quad->filters); |
| 474 EXPECT_EQ(filters_scale, copy_quad->filters_scale); | 460 EXPECT_EQ(filters_scale, copy_quad->filters_scale); |
| 461 EXPECT_EQ(filters_origin, copy_quad->filters_origin); |
| 475 EXPECT_EQ(background_filters, copy_quad->background_filters); | 462 EXPECT_EQ(background_filters, copy_quad->background_filters); |
| 476 | 463 |
| 477 CREATE_QUAD_ALL_RP(RenderPassDrawQuad, | 464 CREATE_QUAD_ALL_RP(RenderPassDrawQuad, render_pass_id, mask_resource_id, |
| 478 render_pass_id, | 465 mask_uv_scale, mask_texture_size, filters, filters_scale, |
| 479 mask_resource_id, | 466 filters_origin, background_filters, copied_render_pass_id); |
| 480 mask_uv_scale, | |
| 481 mask_texture_size, | |
| 482 filters, | |
| 483 filters_scale, | |
| 484 background_filters, | |
| 485 copied_render_pass_id); | |
| 486 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); | 467 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); |
| 487 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); | 468 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); |
| 488 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); | 469 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); |
| 489 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); | 470 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); |
| 490 EXPECT_EQ(mask_texture_size.ToString(), | 471 EXPECT_EQ(mask_texture_size.ToString(), |
| 491 copy_quad->mask_texture_size.ToString()); | 472 copy_quad->mask_texture_size.ToString()); |
| 492 EXPECT_EQ(filters, copy_quad->filters); | 473 EXPECT_EQ(filters, copy_quad->filters); |
| 493 EXPECT_EQ(filters_scale, copy_quad->filters_scale); | 474 EXPECT_EQ(filters_scale, copy_quad->filters_scale); |
| 475 EXPECT_EQ(filters_origin, copy_quad->filters_origin); |
| 494 EXPECT_EQ(background_filters, copy_quad->background_filters); | 476 EXPECT_EQ(background_filters, copy_quad->background_filters); |
| 495 } | 477 } |
| 496 | 478 |
| 497 TEST(DrawQuadTest, CopySolidColorDrawQuad) { | 479 TEST(DrawQuadTest, CopySolidColorDrawQuad) { |
| 498 gfx::Rect visible_rect(40, 50, 30, 20); | 480 gfx::Rect visible_rect(40, 50, 30, 20); |
| 499 SkColor color = 0x49494949; | 481 SkColor color = 0x49494949; |
| 500 bool force_anti_aliasing_off = false; | 482 bool force_anti_aliasing_off = false; |
| 501 CREATE_SHARED_STATE(); | 483 CREATE_SHARED_STATE(); |
| 502 | 484 |
| 503 CREATE_QUAD_3_NEW( | 485 CREATE_QUAD_3_NEW( |
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 768 | 750 |
| 769 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { | 751 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { |
| 770 gfx::Rect visible_rect(40, 50, 30, 20); | 752 gfx::Rect visible_rect(40, 50, 30, 20); |
| 771 RenderPassId render_pass_id(22, 64); | 753 RenderPassId render_pass_id(22, 64); |
| 772 ResourceId mask_resource_id = 78; | 754 ResourceId mask_resource_id = 78; |
| 773 gfx::Vector2dF mask_uv_scale(33.f, 19.f); | 755 gfx::Vector2dF mask_uv_scale(33.f, 19.f); |
| 774 gfx::Size mask_texture_size(128, 134); | 756 gfx::Size mask_texture_size(128, 134); |
| 775 FilterOperations filters; | 757 FilterOperations filters; |
| 776 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | 758 filters.Append(FilterOperation::CreateBlurFilter(1.f)); |
| 777 gfx::Vector2dF filters_scale(2.f, 3.f); | 759 gfx::Vector2dF filters_scale(2.f, 3.f); |
| 760 gfx::PointF filters_origin(0.f, 0.f); |
| 778 FilterOperations background_filters; | 761 FilterOperations background_filters; |
| 779 background_filters.Append( | 762 background_filters.Append( |
| 780 FilterOperation::CreateGrayscaleFilter(1.f)); | 763 FilterOperation::CreateGrayscaleFilter(1.f)); |
| 781 | 764 |
| 782 RenderPassId copied_render_pass_id(235, 11); | 765 RenderPassId copied_render_pass_id(235, 11); |
| 783 | 766 |
| 784 CREATE_SHARED_STATE(); | 767 CREATE_SHARED_STATE(); |
| 785 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, | 768 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, visible_rect, render_pass_id, |
| 786 visible_rect, | 769 mask_resource_id, mask_uv_scale, mask_texture_size, |
| 787 render_pass_id, | 770 filters, filters_scale, filters_origin, background_filters, |
| 788 mask_resource_id, | |
| 789 mask_uv_scale, | |
| 790 mask_texture_size, | |
| 791 filters, | |
| 792 filters_scale, | |
| 793 background_filters, | |
| 794 copied_render_pass_id); | 771 copied_render_pass_id); |
| 795 EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id()); | 772 EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id()); |
| 796 EXPECT_EQ(1, IterateAndCount(quad_new)); | 773 EXPECT_EQ(1, IterateAndCount(quad_new)); |
| 797 EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id()); | 774 EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id()); |
| 798 | 775 |
| 799 ResourceId new_mask_resource_id = 0; | 776 ResourceId new_mask_resource_id = 0; |
| 800 gfx::Rect quad_rect(30, 40, 50, 60); | 777 gfx::Rect quad_rect(30, 40, 50, 60); |
| 801 quad_new->SetNew(shared_state, quad_rect, visible_rect, render_pass_id, | 778 quad_new->SetNew(shared_state, quad_rect, visible_rect, render_pass_id, |
| 802 new_mask_resource_id, mask_uv_scale, mask_texture_size, | 779 new_mask_resource_id, mask_uv_scale, mask_texture_size, |
| 803 filters, filters_scale, background_filters); | 780 filters, filters_scale, filters_origin, background_filters); |
| 804 EXPECT_EQ(0, IterateAndCount(quad_new)); | 781 EXPECT_EQ(0, IterateAndCount(quad_new)); |
| 805 EXPECT_EQ(0u, quad_new->mask_resource_id()); | 782 EXPECT_EQ(0u, quad_new->mask_resource_id()); |
| 806 } | 783 } |
| 807 | 784 |
| 808 TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) { | 785 TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) { |
| 809 gfx::Rect visible_rect(40, 50, 30, 20); | 786 gfx::Rect visible_rect(40, 50, 30, 20); |
| 810 SkColor color = 0x49494949; | 787 SkColor color = 0x49494949; |
| 811 bool force_anti_aliasing_off = false; | 788 bool force_anti_aliasing_off = false; |
| 812 | 789 |
| 813 CREATE_SHARED_STATE(); | 790 CREATE_SHARED_STATE(); |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1014 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); | 991 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); |
| 1015 break; | 992 break; |
| 1016 case DrawQuad::INVALID: | 993 case DrawQuad::INVALID: |
| 1017 break; | 994 break; |
| 1018 } | 995 } |
| 1019 } | 996 } |
| 1020 } | 997 } |
| 1021 | 998 |
| 1022 } // namespace | 999 } // namespace |
| 1023 } // namespace cc | 1000 } // namespace cc |
| OLD | NEW |