Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: cc/quads/draw_quad_unittest.cc

Issue 2297213003: Fix CSS reference filters with negative transformed children. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/playback/largest_display_item.cc ('k') | cc/quads/render_pass_draw_quad.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « cc/playback/largest_display_item.cc ('k') | cc/quads/render_pass_draw_quad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698