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 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 c, \ | 325 c, \ |
326 d, \ | 326 d, \ |
327 e, \ | 327 e, \ |
328 f, \ | 328 f, \ |
329 g, \ | 329 g, \ |
330 h, \ | 330 h, \ |
331 i); \ | 331 i); \ |
332 } \ | 332 } \ |
333 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); | 333 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); |
334 | 334 |
| 335 #define CREATE_QUAD_10_NEW(Type, a, b, c, d, e, f, g, h, i, j) \ |
| 336 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
| 337 { \ |
| 338 QUAD_DATA quad_new->SetNew( \ |
| 339 shared_state, quad_rect, a, b, c, d, e, f, g, h, i, j); \ |
| 340 } \ |
| 341 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
| 342 |
335 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \ | 343 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \ |
336 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 344 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
337 { \ | 345 { \ |
338 QUAD_DATA quad_all->SetAll(shared_state, \ | 346 QUAD_DATA quad_all->SetAll(shared_state, \ |
339 quad_rect, \ | 347 quad_rect, \ |
340 quad_opaque_rect, \ | 348 quad_opaque_rect, \ |
341 quad_visible_rect, \ | 349 quad_visible_rect, \ |
342 needs_blending, \ | 350 needs_blending, \ |
343 a, \ | 351 a, \ |
344 b, \ | 352 b, \ |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 | 542 |
535 TEST(DrawQuadTest, CopyTextureDrawQuad) { | 543 TEST(DrawQuadTest, CopyTextureDrawQuad) { |
536 gfx::Rect opaque_rect(33, 47, 10, 12); | 544 gfx::Rect opaque_rect(33, 47, 10, 12); |
537 gfx::Rect visible_rect(40, 50, 30, 20); | 545 gfx::Rect visible_rect(40, 50, 30, 20); |
538 unsigned resource_id = 82; | 546 unsigned resource_id = 82; |
539 bool premultiplied_alpha = true; | 547 bool premultiplied_alpha = true; |
540 gfx::PointF uv_top_left(0.5f, 224.f); | 548 gfx::PointF uv_top_left(0.5f, 224.f); |
541 gfx::PointF uv_bottom_right(51.5f, 260.f); | 549 gfx::PointF uv_bottom_right(51.5f, 260.f); |
542 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; | 550 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; |
543 bool flipped = true; | 551 bool flipped = true; |
| 552 bool nearest_neighbor = true; |
544 CREATE_SHARED_STATE(); | 553 CREATE_SHARED_STATE(); |
545 | 554 |
546 CREATE_QUAD_9_NEW(TextureDrawQuad, | 555 CREATE_QUAD_10_NEW(TextureDrawQuad, |
547 opaque_rect, | 556 opaque_rect, |
548 visible_rect, | 557 visible_rect, |
549 resource_id, | 558 resource_id, |
550 premultiplied_alpha, | 559 premultiplied_alpha, |
551 uv_top_left, | 560 uv_top_left, |
552 uv_bottom_right, | 561 uv_bottom_right, |
553 SK_ColorTRANSPARENT, | 562 SK_ColorTRANSPARENT, |
554 vertex_opacity, | 563 vertex_opacity, |
555 flipped); | 564 flipped, |
| 565 nearest_neighbor); |
556 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); | 566 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); |
557 EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect); | 567 EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect); |
558 EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect); | 568 EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect); |
559 EXPECT_EQ(resource_id, copy_quad->resource_id); | 569 EXPECT_EQ(resource_id, copy_quad->resource_id); |
560 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); | 570 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); |
561 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); | 571 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); |
562 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); | 572 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); |
563 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); | 573 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); |
564 EXPECT_EQ(flipped, copy_quad->flipped); | 574 EXPECT_EQ(flipped, copy_quad->flipped); |
| 575 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
565 | 576 |
566 CREATE_QUAD_7_ALL(TextureDrawQuad, | 577 CREATE_QUAD_8_ALL(TextureDrawQuad, |
567 resource_id, | 578 resource_id, |
568 premultiplied_alpha, | 579 premultiplied_alpha, |
569 uv_top_left, | 580 uv_top_left, |
570 uv_bottom_right, | 581 uv_bottom_right, |
571 SK_ColorTRANSPARENT, | 582 SK_ColorTRANSPARENT, |
572 vertex_opacity, | 583 vertex_opacity, |
573 flipped); | 584 flipped, |
| 585 nearest_neighbor); |
574 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); | 586 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); |
575 EXPECT_EQ(resource_id, copy_quad->resource_id); | 587 EXPECT_EQ(resource_id, copy_quad->resource_id); |
576 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); | 588 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); |
577 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); | 589 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); |
578 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); | 590 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); |
579 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); | 591 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); |
580 EXPECT_EQ(flipped, copy_quad->flipped); | 592 EXPECT_EQ(flipped, copy_quad->flipped); |
| 593 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
581 } | 594 } |
582 | 595 |
583 TEST(DrawQuadTest, CopyTileDrawQuad) { | 596 TEST(DrawQuadTest, CopyTileDrawQuad) { |
584 gfx::Rect opaque_rect(33, 44, 22, 33); | 597 gfx::Rect opaque_rect(33, 44, 22, 33); |
585 gfx::Rect visible_rect(40, 50, 30, 20); | 598 gfx::Rect visible_rect(40, 50, 30, 20); |
586 unsigned resource_id = 104; | 599 unsigned resource_id = 104; |
587 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | 600 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); |
588 gfx::Size texture_size(85, 32); | 601 gfx::Size texture_size(85, 32); |
589 bool swizzle_contents = true; | 602 bool swizzle_contents = true; |
590 CREATE_SHARED_STATE(); | 603 CREATE_SHARED_STATE(); |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 | 848 |
836 TEST_F(DrawQuadIteratorTest, TextureDrawQuad) { | 849 TEST_F(DrawQuadIteratorTest, TextureDrawQuad) { |
837 gfx::Rect opaque_rect(33, 47, 10, 12); | 850 gfx::Rect opaque_rect(33, 47, 10, 12); |
838 gfx::Rect visible_rect(40, 50, 30, 20); | 851 gfx::Rect visible_rect(40, 50, 30, 20); |
839 unsigned resource_id = 82; | 852 unsigned resource_id = 82; |
840 bool premultiplied_alpha = true; | 853 bool premultiplied_alpha = true; |
841 gfx::PointF uv_top_left(0.5f, 224.f); | 854 gfx::PointF uv_top_left(0.5f, 224.f); |
842 gfx::PointF uv_bottom_right(51.5f, 260.f); | 855 gfx::PointF uv_bottom_right(51.5f, 260.f); |
843 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; | 856 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; |
844 bool flipped = true; | 857 bool flipped = true; |
| 858 bool nearest_neighbor = true; |
845 | 859 |
846 CREATE_SHARED_STATE(); | 860 CREATE_SHARED_STATE(); |
847 CREATE_QUAD_9_NEW(TextureDrawQuad, | 861 CREATE_QUAD_10_NEW(TextureDrawQuad, |
848 opaque_rect, | 862 opaque_rect, |
849 visible_rect, | 863 visible_rect, |
850 resource_id, | 864 resource_id, |
851 premultiplied_alpha, | 865 premultiplied_alpha, |
852 uv_top_left, | 866 uv_top_left, |
853 uv_bottom_right, | 867 uv_bottom_right, |
854 SK_ColorTRANSPARENT, | 868 SK_ColorTRANSPARENT, |
855 vertex_opacity, | 869 vertex_opacity, |
856 flipped); | 870 flipped, |
| 871 nearest_neighbor); |
857 EXPECT_EQ(resource_id, quad_new->resource_id); | 872 EXPECT_EQ(resource_id, quad_new->resource_id); |
858 EXPECT_EQ(1, IterateAndCount(quad_new)); | 873 EXPECT_EQ(1, IterateAndCount(quad_new)); |
859 EXPECT_EQ(resource_id + 1, quad_new->resource_id); | 874 EXPECT_EQ(resource_id + 1, quad_new->resource_id); |
860 } | 875 } |
861 | 876 |
862 TEST_F(DrawQuadIteratorTest, TileDrawQuad) { | 877 TEST_F(DrawQuadIteratorTest, TileDrawQuad) { |
863 gfx::Rect opaque_rect(33, 44, 22, 33); | 878 gfx::Rect opaque_rect(33, 44, 22, 33); |
864 gfx::Rect visible_rect(40, 50, 30, 20); | 879 gfx::Rect visible_rect(40, 50, 30, 20); |
865 unsigned resource_id = 104; | 880 unsigned resource_id = 104; |
866 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | 881 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1023 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); | 1038 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); |
1024 break; | 1039 break; |
1025 case DrawQuad::INVALID: | 1040 case DrawQuad::INVALID: |
1026 break; | 1041 break; |
1027 } | 1042 } |
1028 } | 1043 } |
1029 } | 1044 } |
1030 | 1045 |
1031 } // namespace | 1046 } // namespace |
1032 } // namespace cc | 1047 } // namespace cc |
OLD | NEW |