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 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 388 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
389 | 389 |
390 #define CREATE_QUAD_15_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) \ | 390 #define CREATE_QUAD_15_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) \ |
391 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 391 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
392 { \ | 392 { \ |
393 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ | 393 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ |
394 h, i, j, k, l, m, n, o); \ | 394 h, i, j, k, l, m, n, o); \ |
395 } \ | 395 } \ |
396 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 396 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
397 | 397 |
398 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, h, copy_a) \ | 398 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, copy_a) \ |
399 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 399 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
400 { \ | 400 { \ |
401 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \ | 401 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \ |
402 quad_visible_rect, needs_blending, a, b, c, d, \ | 402 quad_visible_rect, needs_blending, a, b, c, d, \ |
403 e, f, g, h); \ | 403 e, f); \ |
404 } \ | 404 } \ |
405 SETUP_AND_COPY_QUAD_ALL_RP(Type, quad_all, copy_a); | 405 SETUP_AND_COPY_QUAD_ALL_RP(Type, quad_all, copy_a); |
406 | 406 |
407 #define CREATE_QUAD_NEW_RP(Type, a, b, c, d, e, f, g, h, i, copy_a) \ | 407 #define CREATE_QUAD_NEW_RP(Type, a, b, c, d, e, f, g, copy_a) \ |
408 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 408 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
409 { \ | 409 { \ |
410 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ | 410 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g); \ |
411 h, i); \ | 411 } \ |
412 } \ | |
413 SETUP_AND_COPY_QUAD_NEW_RP(Type, quad_new, copy_a); | 412 SETUP_AND_COPY_QUAD_NEW_RP(Type, quad_new, copy_a); |
414 | 413 |
415 TEST(DrawQuadTest, CopyDebugBorderDrawQuad) { | 414 TEST(DrawQuadTest, CopyDebugBorderDrawQuad) { |
416 gfx::Rect visible_rect(40, 50, 30, 20); | 415 gfx::Rect visible_rect(40, 50, 30, 20); |
417 SkColor color = 0xfabb0011; | 416 SkColor color = 0xfabb0011; |
418 int width = 99; | 417 int width = 99; |
419 CREATE_SHARED_STATE(); | 418 CREATE_SHARED_STATE(); |
420 | 419 |
421 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); | 420 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); |
422 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); | 421 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); |
423 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 422 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
424 EXPECT_EQ(color, copy_quad->color); | 423 EXPECT_EQ(color, copy_quad->color); |
425 EXPECT_EQ(width, copy_quad->width); | 424 EXPECT_EQ(width, copy_quad->width); |
426 | 425 |
427 CREATE_QUAD_2_ALL(DebugBorderDrawQuad, color, width); | 426 CREATE_QUAD_2_ALL(DebugBorderDrawQuad, color, width); |
428 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); | 427 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); |
429 EXPECT_EQ(color, copy_quad->color); | 428 EXPECT_EQ(color, copy_quad->color); |
430 EXPECT_EQ(width, copy_quad->width); | 429 EXPECT_EQ(width, copy_quad->width); |
431 } | 430 } |
432 | 431 |
433 TEST(DrawQuadTest, CopyRenderPassDrawQuad) { | 432 TEST(DrawQuadTest, CopyRenderPassDrawQuad) { |
434 gfx::Rect visible_rect(40, 50, 30, 20); | 433 gfx::Rect visible_rect(40, 50, 30, 20); |
435 RenderPassId render_pass_id(22, 64); | 434 RenderPassId render_pass_id(22, 64); |
436 ResourceId mask_resource_id = 78; | 435 ResourceId mask_resource_id = 78; |
437 gfx::Vector2dF mask_uv_scale(33.f, 19.f); | 436 gfx::Vector2dF mask_uv_scale(33.f, 19.f); |
438 gfx::Size mask_texture_size(128, 134); | 437 gfx::Size mask_texture_size(128, 134); |
439 FilterOperations filters; | |
440 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | |
441 gfx::Vector2dF filters_scale; | 438 gfx::Vector2dF filters_scale; |
442 gfx::PointF filters_origin; | 439 gfx::PointF filters_origin; |
443 FilterOperations background_filters; | |
444 background_filters.Append( | |
445 FilterOperation::CreateGrayscaleFilter(1.f)); | |
446 | 440 |
447 RenderPassId copied_render_pass_id(235, 11); | 441 RenderPassId copied_render_pass_id(235, 11); |
448 CREATE_SHARED_STATE(); | 442 CREATE_SHARED_STATE(); |
449 | 443 |
450 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, visible_rect, render_pass_id, | 444 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, visible_rect, render_pass_id, |
451 mask_resource_id, mask_uv_scale, mask_texture_size, | 445 mask_resource_id, mask_uv_scale, mask_texture_size, |
452 filters, filters_scale, filters_origin, background_filters, | 446 filters_scale, filters_origin, copied_render_pass_id); |
453 copied_render_pass_id); | |
454 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); | 447 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); |
455 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 448 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
456 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); | 449 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); |
457 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); | 450 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); |
458 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); | 451 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); |
459 EXPECT_EQ(mask_texture_size.ToString(), | 452 EXPECT_EQ(mask_texture_size.ToString(), |
460 copy_quad->mask_texture_size.ToString()); | 453 copy_quad->mask_texture_size.ToString()); |
461 EXPECT_EQ(filters, copy_quad->filters); | |
462 EXPECT_EQ(filters_scale, copy_quad->filters_scale); | 454 EXPECT_EQ(filters_scale, copy_quad->filters_scale); |
463 EXPECT_EQ(filters_origin, copy_quad->filters_origin); | 455 EXPECT_EQ(filters_origin, copy_quad->filters_origin); |
464 EXPECT_EQ(background_filters, copy_quad->background_filters); | |
465 | 456 |
466 CREATE_QUAD_ALL_RP(RenderPassDrawQuad, render_pass_id, mask_resource_id, | 457 CREATE_QUAD_ALL_RP(RenderPassDrawQuad, render_pass_id, mask_resource_id, |
467 mask_uv_scale, mask_texture_size, filters, filters_scale, | 458 mask_uv_scale, mask_texture_size, filters_scale, |
468 filters_origin, background_filters, copied_render_pass_id); | 459 filters_origin, copied_render_pass_id); |
469 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); | 460 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); |
470 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); | 461 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); |
471 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); | 462 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id()); |
472 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); | 463 EXPECT_EQ(mask_uv_scale.ToString(), copy_quad->mask_uv_scale.ToString()); |
473 EXPECT_EQ(mask_texture_size.ToString(), | 464 EXPECT_EQ(mask_texture_size.ToString(), |
474 copy_quad->mask_texture_size.ToString()); | 465 copy_quad->mask_texture_size.ToString()); |
475 EXPECT_EQ(filters, copy_quad->filters); | |
476 EXPECT_EQ(filters_scale, copy_quad->filters_scale); | 466 EXPECT_EQ(filters_scale, copy_quad->filters_scale); |
477 EXPECT_EQ(filters_origin, copy_quad->filters_origin); | 467 EXPECT_EQ(filters_origin, copy_quad->filters_origin); |
478 EXPECT_EQ(background_filters, copy_quad->background_filters); | |
479 } | 468 } |
480 | 469 |
481 TEST(DrawQuadTest, CopySolidColorDrawQuad) { | 470 TEST(DrawQuadTest, CopySolidColorDrawQuad) { |
482 gfx::Rect visible_rect(40, 50, 30, 20); | 471 gfx::Rect visible_rect(40, 50, 30, 20); |
483 SkColor color = 0x49494949; | 472 SkColor color = 0x49494949; |
484 bool force_anti_aliasing_off = false; | 473 bool force_anti_aliasing_off = false; |
485 CREATE_SHARED_STATE(); | 474 CREATE_SHARED_STATE(); |
486 | 475 |
487 CREATE_QUAD_3_NEW( | 476 CREATE_QUAD_3_NEW( |
488 SolidColorDrawQuad, visible_rect, color, force_anti_aliasing_off); | 477 SolidColorDrawQuad, visible_rect, color, force_anti_aliasing_off); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); | 739 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); |
751 EXPECT_EQ(0, IterateAndCount(quad_new)); | 740 EXPECT_EQ(0, IterateAndCount(quad_new)); |
752 } | 741 } |
753 | 742 |
754 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { | 743 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { |
755 gfx::Rect visible_rect(40, 50, 30, 20); | 744 gfx::Rect visible_rect(40, 50, 30, 20); |
756 RenderPassId render_pass_id(22, 64); | 745 RenderPassId render_pass_id(22, 64); |
757 ResourceId mask_resource_id = 78; | 746 ResourceId mask_resource_id = 78; |
758 gfx::Vector2dF mask_uv_scale(33.f, 19.f); | 747 gfx::Vector2dF mask_uv_scale(33.f, 19.f); |
759 gfx::Size mask_texture_size(128, 134); | 748 gfx::Size mask_texture_size(128, 134); |
760 FilterOperations filters; | |
761 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | |
762 gfx::Vector2dF filters_scale(2.f, 3.f); | 749 gfx::Vector2dF filters_scale(2.f, 3.f); |
763 gfx::PointF filters_origin(0.f, 0.f); | 750 gfx::PointF filters_origin(0.f, 0.f); |
764 FilterOperations background_filters; | |
765 background_filters.Append( | |
766 FilterOperation::CreateGrayscaleFilter(1.f)); | |
767 | 751 |
768 RenderPassId copied_render_pass_id(235, 11); | 752 RenderPassId copied_render_pass_id(235, 11); |
769 | 753 |
770 CREATE_SHARED_STATE(); | 754 CREATE_SHARED_STATE(); |
771 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, visible_rect, render_pass_id, | 755 CREATE_QUAD_NEW_RP(RenderPassDrawQuad, visible_rect, render_pass_id, |
772 mask_resource_id, mask_uv_scale, mask_texture_size, | 756 mask_resource_id, mask_uv_scale, mask_texture_size, |
773 filters, filters_scale, filters_origin, background_filters, | 757 filters_scale, filters_origin, copied_render_pass_id); |
774 copied_render_pass_id); | |
775 EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id()); | 758 EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id()); |
776 EXPECT_EQ(1, IterateAndCount(quad_new)); | 759 EXPECT_EQ(1, IterateAndCount(quad_new)); |
777 EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id()); | 760 EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id()); |
778 | 761 |
779 ResourceId new_mask_resource_id = 0; | 762 ResourceId new_mask_resource_id = 0; |
780 gfx::Rect quad_rect(30, 40, 50, 60); | 763 gfx::Rect quad_rect(30, 40, 50, 60); |
781 quad_new->SetNew(shared_state, quad_rect, visible_rect, render_pass_id, | 764 quad_new->SetNew(shared_state, quad_rect, visible_rect, render_pass_id, |
782 new_mask_resource_id, mask_uv_scale, mask_texture_size, | 765 new_mask_resource_id, mask_uv_scale, mask_texture_size, |
783 filters, filters_scale, filters_origin, background_filters); | 766 filters_scale, filters_origin); |
784 EXPECT_EQ(0, IterateAndCount(quad_new)); | 767 EXPECT_EQ(0, IterateAndCount(quad_new)); |
785 EXPECT_EQ(0u, quad_new->mask_resource_id()); | 768 EXPECT_EQ(0u, quad_new->mask_resource_id()); |
786 } | 769 } |
787 | 770 |
788 TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) { | 771 TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) { |
789 gfx::Rect visible_rect(40, 50, 30, 20); | 772 gfx::Rect visible_rect(40, 50, 30, 20); |
790 SkColor color = 0x49494949; | 773 SkColor color = 0x49494949; |
791 bool force_anti_aliasing_off = false; | 774 bool force_anti_aliasing_off = false; |
792 | 775 |
793 CREATE_SHARED_STATE(); | 776 CREATE_SHARED_STATE(); |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
994 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); | 977 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); |
995 break; | 978 break; |
996 case DrawQuad::INVALID: | 979 case DrawQuad::INVALID: |
997 break; | 980 break; |
998 } | 981 } |
999 } | 982 } |
1000 } | 983 } |
1001 | 984 |
1002 } // namespace | 985 } // namespace |
1003 } // namespace cc | 986 } // namespace cc |
OLD | NEW |