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 |