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 <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
323 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); | 323 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); |
324 | 324 |
325 #define CREATE_QUAD_10_NEW(Type, a, b, c, d, e, f, g, h, i, j) \ | 325 #define CREATE_QUAD_10_NEW(Type, a, b, c, d, e, f, g, h, i, j) \ |
326 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 326 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
327 { \ | 327 { \ |
328 QUAD_DATA quad_new->SetNew( \ | 328 QUAD_DATA quad_new->SetNew( \ |
329 shared_state, quad_rect, a, b, c, d, e, f, g, h, i, j); \ | 329 shared_state, quad_rect, a, b, c, d, e, f, g, h, i, j); \ |
330 } \ | 330 } \ |
331 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 331 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
332 | 332 |
333 #define CREATE_QUAD_10_ALL(Type, a, b, c, d, e, f, g, h, i, j) \ | |
334 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ | |
335 { \ | |
336 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \ | |
337 quad_visible_rect, needs_blending, a, b, c, d, \ | |
338 e, f, g, h, i, j); \ | |
339 } \ | |
340 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); | |
341 | |
333 #define CREATE_QUAD_11_NEW(Type, a, b, c, d, e, f, g, h, i, j, k) \ | 342 #define CREATE_QUAD_11_NEW(Type, a, b, c, d, e, f, g, h, i, j, k) \ |
334 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 343 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
335 { \ | 344 { \ |
336 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ | 345 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ |
337 h, i, j, k); \ | 346 h, i, j, k); \ |
338 } \ | 347 } \ |
339 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 348 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
340 | 349 |
341 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \ | 350 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \ |
342 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 351 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
501 CREATE_QUAD_2_ALL(SolidColorDrawQuad, color, force_anti_aliasing_off); | 510 CREATE_QUAD_2_ALL(SolidColorDrawQuad, color, force_anti_aliasing_off); |
502 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material); | 511 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material); |
503 EXPECT_EQ(color, copy_quad->color); | 512 EXPECT_EQ(color, copy_quad->color); |
504 EXPECT_EQ(force_anti_aliasing_off, copy_quad->force_anti_aliasing_off); | 513 EXPECT_EQ(force_anti_aliasing_off, copy_quad->force_anti_aliasing_off); |
505 } | 514 } |
506 | 515 |
507 TEST(DrawQuadTest, CopyStreamVideoDrawQuad) { | 516 TEST(DrawQuadTest, CopyStreamVideoDrawQuad) { |
508 gfx::Rect opaque_rect(33, 47, 10, 12); | 517 gfx::Rect opaque_rect(33, 47, 10, 12); |
509 gfx::Rect visible_rect(40, 50, 30, 20); | 518 gfx::Rect visible_rect(40, 50, 30, 20); |
510 ResourceId resource_id = 64; | 519 ResourceId resource_id = 64; |
520 gfx::Size resource_size_in_pixels = gfx::Size(32, 32); | |
danakj
2015/06/01 17:31:29
use non-symmetrical numbers
achaulk
2015/06/02 19:06:50
Done.
| |
521 bool allow_overlay = true; | |
511 gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1); | 522 gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1); |
512 CREATE_SHARED_STATE(); | 523 CREATE_SHARED_STATE(); |
513 | 524 |
514 CREATE_QUAD_4_NEW( | 525 CREATE_QUAD_4_NEW( |
515 StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id, matrix); | 526 StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id, matrix); |
516 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material); | 527 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material); |
517 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 528 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
518 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); | 529 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); |
519 EXPECT_EQ(resource_id, copy_quad->resource_id); | 530 EXPECT_EQ(resource_id, copy_quad->resource_id); |
520 EXPECT_EQ(matrix, copy_quad->matrix); | 531 EXPECT_EQ(matrix, copy_quad->matrix); |
521 | 532 |
522 CREATE_QUAD_2_ALL(StreamVideoDrawQuad, resource_id, matrix); | 533 CREATE_QUAD_4_ALL(StreamVideoDrawQuad, resource_id, resource_size_in_pixels, |
534 allow_overlay, matrix); | |
523 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material); | 535 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material); |
524 EXPECT_EQ(resource_id, copy_quad->resource_id); | 536 EXPECT_EQ(resource_id, copy_quad->resource_id); |
537 EXPECT_EQ(allow_overlay, copy_quad->allow_overlay); | |
538 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels); | |
525 EXPECT_EQ(matrix, copy_quad->matrix); | 539 EXPECT_EQ(matrix, copy_quad->matrix); |
526 } | 540 } |
527 | 541 |
528 TEST(DrawQuadTest, CopySurfaceDrawQuad) { | 542 TEST(DrawQuadTest, CopySurfaceDrawQuad) { |
529 gfx::Rect visible_rect(40, 50, 30, 20); | 543 gfx::Rect visible_rect(40, 50, 30, 20); |
530 SurfaceId surface_id(1234); | 544 SurfaceId surface_id(1234); |
531 CREATE_SHARED_STATE(); | 545 CREATE_SHARED_STATE(); |
532 | 546 |
533 CREATE_QUAD_2_NEW(SurfaceDrawQuad, visible_rect, surface_id); | 547 CREATE_QUAD_2_NEW(SurfaceDrawQuad, visible_rect, surface_id); |
534 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material); | 548 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material); |
535 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 549 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
536 EXPECT_EQ(surface_id, copy_quad->surface_id); | 550 EXPECT_EQ(surface_id, copy_quad->surface_id); |
537 | 551 |
538 CREATE_QUAD_1_ALL(SurfaceDrawQuad, surface_id); | 552 CREATE_QUAD_1_ALL(SurfaceDrawQuad, surface_id); |
539 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material); | 553 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material); |
540 EXPECT_EQ(surface_id, copy_quad->surface_id); | 554 EXPECT_EQ(surface_id, copy_quad->surface_id); |
541 } | 555 } |
542 | 556 |
543 | 557 |
544 TEST(DrawQuadTest, CopyTextureDrawQuad) { | 558 TEST(DrawQuadTest, CopyTextureDrawQuad) { |
545 gfx::Rect opaque_rect(33, 47, 10, 12); | 559 gfx::Rect opaque_rect(33, 47, 10, 12); |
546 gfx::Rect visible_rect(40, 50, 30, 20); | 560 gfx::Rect visible_rect(40, 50, 30, 20); |
547 unsigned resource_id = 82; | 561 unsigned resource_id = 82; |
562 gfx::Size resource_size_in_pixels = gfx::Size(32, 32); | |
danakj
2015/06/01 17:31:29
non-symmetrical
achaulk
2015/06/02 19:06:50
Done.
| |
563 bool allow_overlay = true; | |
548 bool premultiplied_alpha = true; | 564 bool premultiplied_alpha = true; |
549 gfx::PointF uv_top_left(0.5f, 224.f); | 565 gfx::PointF uv_top_left(0.5f, 224.f); |
550 gfx::PointF uv_bottom_right(51.5f, 260.f); | 566 gfx::PointF uv_bottom_right(51.5f, 260.f); |
551 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; | 567 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; |
552 bool y_flipped = true; | 568 bool y_flipped = true; |
553 bool nearest_neighbor = true; | 569 bool nearest_neighbor = true; |
554 CREATE_SHARED_STATE(); | 570 CREATE_SHARED_STATE(); |
555 | 571 |
556 CREATE_QUAD_10_NEW(TextureDrawQuad, | 572 CREATE_QUAD_10_NEW(TextureDrawQuad, |
557 opaque_rect, | 573 opaque_rect, |
(...skipping 10 matching lines...) Expand all Loading... | |
568 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 584 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
569 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); | 585 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); |
570 EXPECT_EQ(resource_id, copy_quad->resource_id); | 586 EXPECT_EQ(resource_id, copy_quad->resource_id); |
571 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); | 587 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); |
572 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); | 588 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); |
573 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); | 589 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); |
574 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); | 590 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); |
575 EXPECT_EQ(y_flipped, copy_quad->y_flipped); | 591 EXPECT_EQ(y_flipped, copy_quad->y_flipped); |
576 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); | 592 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
577 | 593 |
578 CREATE_QUAD_8_ALL(TextureDrawQuad, | 594 CREATE_QUAD_10_ALL(TextureDrawQuad, resource_id, resource_size_in_pixels, |
579 resource_id, | 595 allow_overlay, premultiplied_alpha, uv_top_left, |
580 premultiplied_alpha, | 596 uv_bottom_right, SK_ColorTRANSPARENT, vertex_opacity, |
581 uv_top_left, | 597 y_flipped, nearest_neighbor); |
582 uv_bottom_right, | |
583 SK_ColorTRANSPARENT, | |
584 vertex_opacity, | |
585 y_flipped, | |
586 nearest_neighbor); | |
587 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); | 598 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); |
588 EXPECT_EQ(resource_id, copy_quad->resource_id); | 599 EXPECT_EQ(resource_id, copy_quad->resource_id); |
600 EXPECT_EQ(allow_overlay, copy_quad->allow_overlay); | |
601 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels); | |
589 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); | 602 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); |
590 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); | 603 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); |
591 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); | 604 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); |
592 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); | 605 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); |
593 EXPECT_EQ(y_flipped, copy_quad->y_flipped); | 606 EXPECT_EQ(y_flipped, copy_quad->y_flipped); |
594 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); | 607 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
595 } | 608 } |
596 | 609 |
597 TEST(DrawQuadTest, CopyTileDrawQuad) { | 610 TEST(DrawQuadTest, CopyTileDrawQuad) { |
598 gfx::Rect opaque_rect(33, 44, 22, 33); | 611 gfx::Rect opaque_rect(33, 44, 22, 33); |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1037 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); | 1050 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); |
1038 break; | 1051 break; |
1039 case DrawQuad::INVALID: | 1052 case DrawQuad::INVALID: |
1040 break; | 1053 break; |
1041 } | 1054 } |
1042 } | 1055 } |
1043 } | 1056 } |
1044 | 1057 |
1045 } // namespace | 1058 } // namespace |
1046 } // namespace cc | 1059 } // namespace cc |
OLD | NEW |