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

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

Issue 2088273003: Video Color Managament (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bugfix Created 4 years, 5 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
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
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "cc/base/math_util.h" 13 #include "cc/base/math_util.h"
14 #include "cc/output/filter_operations.h" 14 #include "cc/output/filter_operations.h"
15 #include "cc/quads/debug_border_draw_quad.h" 15 #include "cc/quads/debug_border_draw_quad.h"
16 #include "cc/quads/largest_draw_quad.h" 16 #include "cc/quads/largest_draw_quad.h"
17 #include "cc/quads/picture_draw_quad.h" 17 #include "cc/quads/picture_draw_quad.h"
18 #include "cc/quads/render_pass.h" 18 #include "cc/quads/render_pass.h"
19 #include "cc/quads/render_pass_draw_quad.h" 19 #include "cc/quads/render_pass_draw_quad.h"
20 #include "cc/quads/solid_color_draw_quad.h" 20 #include "cc/quads/solid_color_draw_quad.h"
21 #include "cc/quads/stream_video_draw_quad.h" 21 #include "cc/quads/stream_video_draw_quad.h"
22 #include "cc/quads/surface_draw_quad.h" 22 #include "cc/quads/surface_draw_quad.h"
23 #include "cc/quads/texture_draw_quad.h" 23 #include "cc/quads/texture_draw_quad.h"
24 #include "cc/quads/tile_draw_quad.h" 24 #include "cc/quads/tile_draw_quad.h"
25 #include "cc/quads/yuv_video_draw_quad.h" 25 #include "cc/quads/yuv_video_draw_quad.h"
26 #include "cc/test/fake_raster_source.h" 26 #include "cc/test/fake_raster_source.h"
27 #include "cc/test/geometry_test_utils.h" 27 #include "cc/test/geometry_test_utils.h"
28 #include "media/base/video_color_space.h"
28 #include "testing/gtest/include/gtest/gtest.h" 29 #include "testing/gtest/include/gtest/gtest.h"
29 #include "third_party/skia/include/effects/SkBlurImageFilter.h" 30 #include "third_party/skia/include/effects/SkBlurImageFilter.h"
30 #include "ui/gfx/transform.h" 31 #include "ui/gfx/transform.h"
31 32
32 namespace cc { 33 namespace cc {
33 namespace { 34 namespace {
34 35
35 TEST(DrawQuadTest, CopySharedQuadState) { 36 TEST(DrawQuadTest, CopySharedQuadState) {
36 gfx::Transform quad_transform = gfx::Transform(1.0, 0.0, 0.5, 1.0, 0.5, 0.0); 37 gfx::Transform quad_transform = gfx::Transform(1.0, 0.0, 0.5, 1.0, 0.5, 0.0);
37 gfx::Size layer_bounds(26, 28); 38 gfx::Size layer_bounds(26, 28);
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); 345 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
345 346
346 #define CREATE_QUAD_12_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l) \ 347 #define CREATE_QUAD_12_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l) \
347 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ 348 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
348 { \ 349 { \
349 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ 350 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
350 h, i, j, k, l); \ 351 h, i, j, k, l); \
351 } \ 352 } \
352 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); 353 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
353 354
355 #define CREATE_QUAD_12_ALL(Type, a, b, c, d, e, f, g, h, i, j, k, l) \
356 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
357 { \
358 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
359 quad_visible_rect, needs_blending, a, b, c, d, \
360 e, f, g, h, i, j, k, l); \
361 } \
362 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
363
354 #define CREATE_QUAD_13_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m) \ 364 #define CREATE_QUAD_13_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m) \
355 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ 365 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
356 { \ 366 { \
357 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ 367 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
358 h, i, j, k, l, m); \ 368 h, i, j, k, l, m); \
359 } \ 369 } \
360 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); 370 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
361 371
372 #define CREATE_QUAD_14_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m, n) \
373 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
374 { \
375 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
376 h, i, j, k, l, m, n); \
377 } \
378 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
379
362 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \ 380 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \
363 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ 381 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
364 { \ 382 { \
365 QUAD_DATA quad_all->SetAll(shared_state, \ 383 QUAD_DATA quad_all->SetAll(shared_state, \
366 quad_rect, \ 384 quad_rect, \
367 quad_opaque_rect, \ 385 quad_opaque_rect, \
368 quad_visible_rect, \ 386 quad_visible_rect, \
369 needs_blending, \ 387 needs_blending, \
370 a, \ 388 a, \
371 b, \ 389 b, \
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 gfx::RectF uv_tex_coord_rect(20, 25, 15, 10); 632 gfx::RectF uv_tex_coord_rect(20, 25, 15, 10);
615 gfx::Size ya_tex_size(32, 68); 633 gfx::Size ya_tex_size(32, 68);
616 gfx::Size uv_tex_size(41, 51); 634 gfx::Size uv_tex_size(41, 51);
617 ResourceId y_plane_resource_id = 45; 635 ResourceId y_plane_resource_id = 45;
618 ResourceId u_plane_resource_id = 532; 636 ResourceId u_plane_resource_id = 532;
619 ResourceId v_plane_resource_id = 4; 637 ResourceId v_plane_resource_id = 4;
620 ResourceId a_plane_resource_id = 63; 638 ResourceId a_plane_resource_id = 63;
621 float resource_offset = 0.5f; 639 float resource_offset = 0.5f;
622 float resource_multiplier = 2.001f; 640 float resource_multiplier = 2.001f;
623 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; 641 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG;
642 media::VideoColorSpace video_color_space(media::COLOR_SPACE_JPEG);
624 CREATE_SHARED_STATE(); 643 CREATE_SHARED_STATE();
625 644
626 CREATE_QUAD_13_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, 645 CREATE_QUAD_14_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect,
627 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, 646 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size,
628 uv_tex_size, y_plane_resource_id, u_plane_resource_id, 647 uv_tex_size, y_plane_resource_id, u_plane_resource_id,
629 v_plane_resource_id, a_plane_resource_id, color_space, 648 v_plane_resource_id, a_plane_resource_id, color_space,
630 resource_offset, resource_multiplier); 649 video_color_space, resource_offset, resource_multiplier);
631 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); 650 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
632 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); 651 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
633 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 652 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
634 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); 653 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect);
635 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); 654 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect);
636 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); 655 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size);
637 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); 656 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size);
638 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); 657 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id());
639 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); 658 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id());
640 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); 659 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id());
641 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); 660 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id());
642 EXPECT_EQ(color_space, copy_quad->color_space); 661 EXPECT_EQ(color_space, copy_quad->color_space);
643 EXPECT_EQ(resource_offset, copy_quad->resource_offset); 662 EXPECT_EQ(resource_offset, copy_quad->resource_offset);
644 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); 663 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier);
645 664
646 CREATE_QUAD_11_ALL(YUVVideoDrawQuad, ya_tex_coord_rect, uv_tex_coord_rect, 665 CREATE_QUAD_12_ALL(YUVVideoDrawQuad, ya_tex_coord_rect, uv_tex_coord_rect,
647 ya_tex_size, uv_tex_size, y_plane_resource_id, 666 ya_tex_size, uv_tex_size, y_plane_resource_id,
648 u_plane_resource_id, v_plane_resource_id, 667 u_plane_resource_id, v_plane_resource_id,
649 a_plane_resource_id, color_space, resource_offset, 668 a_plane_resource_id, color_space, video_color_space,
650 resource_multiplier); 669 resource_offset, resource_multiplier);
651 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); 670 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
652 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); 671 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect);
653 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); 672 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect);
654 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); 673 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size);
655 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); 674 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size);
656 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); 675 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id());
657 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); 676 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id());
658 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); 677 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id());
659 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); 678 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id());
660 EXPECT_EQ(color_space, copy_quad->color_space); 679 EXPECT_EQ(color_space, copy_quad->color_space);
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 gfx::Rect visible_rect(40, 50, 30, 20); 871 gfx::Rect visible_rect(40, 50, 30, 20);
853 gfx::RectF ya_tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f); 872 gfx::RectF ya_tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f);
854 gfx::RectF uv_tex_coord_rect(0.0f, 0.0f, 0.375f, 0.25f); 873 gfx::RectF uv_tex_coord_rect(0.0f, 0.0f, 0.375f, 0.25f);
855 gfx::Size ya_tex_size(32, 68); 874 gfx::Size ya_tex_size(32, 68);
856 gfx::Size uv_tex_size(41, 51); 875 gfx::Size uv_tex_size(41, 51);
857 ResourceId y_plane_resource_id = 45; 876 ResourceId y_plane_resource_id = 45;
858 ResourceId u_plane_resource_id = 532; 877 ResourceId u_plane_resource_id = 532;
859 ResourceId v_plane_resource_id = 4; 878 ResourceId v_plane_resource_id = 4;
860 ResourceId a_plane_resource_id = 63; 879 ResourceId a_plane_resource_id = 63;
861 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; 880 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG;
881 media::VideoColorSpace video_color_space(media::COLOR_SPACE_JPEG);
862 882
863 CREATE_SHARED_STATE(); 883 CREATE_SHARED_STATE();
864 CREATE_QUAD_13_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, 884 CREATE_QUAD_14_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect,
865 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, 885 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size,
866 uv_tex_size, y_plane_resource_id, u_plane_resource_id, 886 uv_tex_size, y_plane_resource_id, u_plane_resource_id,
867 v_plane_resource_id, a_plane_resource_id, color_space, 0.0, 887 v_plane_resource_id, a_plane_resource_id, color_space,
868 1.0); 888 video_color_space, 0.0, 1.0);
869 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); 889 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
870 EXPECT_EQ(y_plane_resource_id, quad_new->y_plane_resource_id()); 890 EXPECT_EQ(y_plane_resource_id, quad_new->y_plane_resource_id());
871 EXPECT_EQ(u_plane_resource_id, quad_new->u_plane_resource_id()); 891 EXPECT_EQ(u_plane_resource_id, quad_new->u_plane_resource_id());
872 EXPECT_EQ(v_plane_resource_id, quad_new->v_plane_resource_id()); 892 EXPECT_EQ(v_plane_resource_id, quad_new->v_plane_resource_id());
873 EXPECT_EQ(a_plane_resource_id, quad_new->a_plane_resource_id()); 893 EXPECT_EQ(a_plane_resource_id, quad_new->a_plane_resource_id());
874 EXPECT_EQ(color_space, quad_new->color_space); 894 EXPECT_EQ(color_space, quad_new->color_space);
875 EXPECT_EQ(4, IterateAndCount(quad_new)); 895 EXPECT_EQ(4, IterateAndCount(quad_new));
876 EXPECT_EQ(y_plane_resource_id + 1, quad_new->y_plane_resource_id()); 896 EXPECT_EQ(y_plane_resource_id + 1, quad_new->y_plane_resource_id());
877 EXPECT_EQ(u_plane_resource_id + 1, quad_new->u_plane_resource_id()); 897 EXPECT_EQ(u_plane_resource_id + 1, quad_new->u_plane_resource_id());
878 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id()); 898 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id());
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); 993 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad);
974 break; 994 break;
975 case DrawQuad::INVALID: 995 case DrawQuad::INVALID:
976 break; 996 break;
977 } 997 }
978 } 998 }
979 } 999 }
980 1000
981 } // namespace 1001 } // namespace
982 } // namespace cc 1002 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698