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

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

Issue 2121043002: 16 bpp video stream capture, render and WebGL usage - Realsense R200 & SR300 support. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tests: cc, skcanvas_video_renderer, wrtcrecorder... Fake capture supports Y16. Created 4 years, 2 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/y_video_draw_quad.h"
25 #include "cc/quads/yuv_video_draw_quad.h" 26 #include "cc/quads/yuv_video_draw_quad.h"
26 #include "cc/test/fake_raster_source.h" 27 #include "cc/test/fake_raster_source.h"
27 #include "cc/test/geometry_test_utils.h" 28 #include "cc/test/geometry_test_utils.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
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); 695 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id());
695 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); 696 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id());
696 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); 697 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id());
697 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); 698 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id());
698 EXPECT_EQ(color_space, copy_quad->color_space); 699 EXPECT_EQ(color_space, copy_quad->color_space);
699 EXPECT_EQ(resource_offset, copy_quad->resource_offset); 700 EXPECT_EQ(resource_offset, copy_quad->resource_offset);
700 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); 701 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier);
701 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel); 702 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel);
702 } 703 }
703 704
705 TEST(DrawQuadTest, CopyYVideoDrawQuad) {
706 gfx::Rect opaque_rect(33, 47, 10, 12);
707 gfx::Rect visible_rect(40, 50, 30, 20);
708 unsigned resource_id = 82;
709 gfx::PointF uv_top_left(0.5f, 224.f);
710 gfx::PointF uv_bottom_right(51.5f, 260.f);
711 CREATE_SHARED_STATE();
712
713 CREATE_QUAD_5_NEW(YVideoDrawQuad, opaque_rect, visible_rect, resource_id,
714 uv_top_left, uv_bottom_right);
715 EXPECT_EQ(DrawQuad::Y_VIDEO_CONTENT, copy_quad->material);
716 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
717 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
718 EXPECT_EQ(resource_id, copy_quad->resource_id());
719 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left);
720 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right);
721
722 CREATE_QUAD_3_ALL(YVideoDrawQuad, resource_id, uv_top_left, uv_bottom_right);
723 EXPECT_EQ(DrawQuad::Y_VIDEO_CONTENT, copy_quad->material);
724 EXPECT_EQ(resource_id, copy_quad->resource_id());
725 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left);
726 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right);
727 }
728
704 TEST(DrawQuadTest, CopyPictureDrawQuad) { 729 TEST(DrawQuadTest, CopyPictureDrawQuad) {
705 gfx::Rect opaque_rect(33, 44, 22, 33); 730 gfx::Rect opaque_rect(33, 44, 22, 33);
706 gfx::Rect visible_rect(40, 50, 30, 20); 731 gfx::Rect visible_rect(40, 50, 30, 20);
707 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); 732 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
708 gfx::Size texture_size(85, 32); 733 gfx::Size texture_size(85, 32);
709 bool nearest_neighbor = true; 734 bool nearest_neighbor = true;
710 ResourceFormat texture_format = RGBA_8888; 735 ResourceFormat texture_format = RGBA_8888;
711 gfx::Rect content_rect(30, 40, 20, 30); 736 gfx::Rect content_rect(30, 40, 20, 30);
712 float contents_scale = 3.141592f; 737 float contents_scale = 3.141592f;
713 scoped_refptr<RasterSource> raster_source = 738 scoped_refptr<RasterSource> raster_source =
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 EXPECT_EQ(v_plane_resource_id, quad_new->v_plane_resource_id()); 937 EXPECT_EQ(v_plane_resource_id, quad_new->v_plane_resource_id());
913 EXPECT_EQ(a_plane_resource_id, quad_new->a_plane_resource_id()); 938 EXPECT_EQ(a_plane_resource_id, quad_new->a_plane_resource_id());
914 EXPECT_EQ(color_space, quad_new->color_space); 939 EXPECT_EQ(color_space, quad_new->color_space);
915 EXPECT_EQ(4, IterateAndCount(quad_new)); 940 EXPECT_EQ(4, IterateAndCount(quad_new));
916 EXPECT_EQ(y_plane_resource_id + 1, quad_new->y_plane_resource_id()); 941 EXPECT_EQ(y_plane_resource_id + 1, quad_new->y_plane_resource_id());
917 EXPECT_EQ(u_plane_resource_id + 1, quad_new->u_plane_resource_id()); 942 EXPECT_EQ(u_plane_resource_id + 1, quad_new->u_plane_resource_id());
918 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id()); 943 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id());
919 EXPECT_EQ(a_plane_resource_id + 1, quad_new->a_plane_resource_id()); 944 EXPECT_EQ(a_plane_resource_id + 1, quad_new->a_plane_resource_id());
920 } 945 }
921 946
947 TEST_F(DrawQuadIteratorTest, YVideoDrawQuad) {
948 gfx::Rect opaque_rect(33, 47, 10, 12);
949 gfx::Rect visible_rect(40, 50, 30, 20);
950 unsigned resource_id = 82;
951 gfx::PointF uv_top_left(0.5f, 224.f);
952 gfx::PointF uv_bottom_right(51.5f, 260.f);
953
954 CREATE_SHARED_STATE();
955 CREATE_QUAD_5_NEW(YVideoDrawQuad, opaque_rect, visible_rect, resource_id,
956 uv_top_left, uv_bottom_right);
957 EXPECT_EQ(resource_id, quad_new->resource_id());
958 EXPECT_EQ(1, IterateAndCount(quad_new));
959 EXPECT_EQ(resource_id + 1, quad_new->resource_id());
960 }
961
922 // Disabled until picture draw quad is supported for ubercomp: crbug.com/231715 962 // Disabled until picture draw quad is supported for ubercomp: crbug.com/231715
923 TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) { 963 TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) {
924 gfx::Rect opaque_rect(33, 44, 22, 33); 964 gfx::Rect opaque_rect(33, 44, 22, 33);
925 gfx::Rect visible_rect(40, 50, 30, 20); 965 gfx::Rect visible_rect(40, 50, 30, 20);
926 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); 966 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
927 gfx::Size texture_size(85, 32); 967 gfx::Size texture_size(85, 32);
928 bool nearest_neighbor = true; 968 bool nearest_neighbor = true;
929 ResourceFormat texture_format = RGBA_8888; 969 ResourceFormat texture_format = RGBA_8888;
930 gfx::Rect content_rect(30, 40, 20, 30); 970 gfx::Rect content_rect(30, 40, 20, 30);
931 float contents_scale = 3.141592f; 971 float contents_scale = 3.141592f;
(...skipping 29 matching lines...) Expand all
961 break; 1001 break;
962 case DrawQuad::SURFACE_CONTENT: 1002 case DrawQuad::SURFACE_CONTENT:
963 largest = std::max(largest, sizeof(SurfaceDrawQuad)); 1003 largest = std::max(largest, sizeof(SurfaceDrawQuad));
964 break; 1004 break;
965 case DrawQuad::TILED_CONTENT: 1005 case DrawQuad::TILED_CONTENT:
966 largest = std::max(largest, sizeof(TileDrawQuad)); 1006 largest = std::max(largest, sizeof(TileDrawQuad));
967 break; 1007 break;
968 case DrawQuad::STREAM_VIDEO_CONTENT: 1008 case DrawQuad::STREAM_VIDEO_CONTENT:
969 largest = std::max(largest, sizeof(StreamVideoDrawQuad)); 1009 largest = std::max(largest, sizeof(StreamVideoDrawQuad));
970 break; 1010 break;
1011 case DrawQuad::Y_VIDEO_CONTENT:
1012 largest = std::max(largest, sizeof(YVideoDrawQuad));
1013 break;
971 case DrawQuad::YUV_VIDEO_CONTENT: 1014 case DrawQuad::YUV_VIDEO_CONTENT:
972 largest = std::max(largest, sizeof(YUVVideoDrawQuad)); 1015 largest = std::max(largest, sizeof(YUVVideoDrawQuad));
973 break; 1016 break;
974 case DrawQuad::INVALID: 1017 case DrawQuad::INVALID:
975 break; 1018 break;
976 } 1019 }
977 } 1020 }
978 EXPECT_EQ(LargestDrawQuadSize(), largest); 1021 EXPECT_EQ(LargestDrawQuadSize(), largest);
979 1022
980 if (!HasFailure()) 1023 if (!HasFailure())
(...skipping 21 matching lines...) Expand all
1002 break; 1045 break;
1003 case DrawQuad::SURFACE_CONTENT: 1046 case DrawQuad::SURFACE_CONTENT:
1004 LOG(ERROR) << "SurfaceDrawQuad " << sizeof(SurfaceDrawQuad); 1047 LOG(ERROR) << "SurfaceDrawQuad " << sizeof(SurfaceDrawQuad);
1005 break; 1048 break;
1006 case DrawQuad::TILED_CONTENT: 1049 case DrawQuad::TILED_CONTENT:
1007 LOG(ERROR) << "TileDrawQuad " << sizeof(TileDrawQuad); 1050 LOG(ERROR) << "TileDrawQuad " << sizeof(TileDrawQuad);
1008 break; 1051 break;
1009 case DrawQuad::STREAM_VIDEO_CONTENT: 1052 case DrawQuad::STREAM_VIDEO_CONTENT:
1010 LOG(ERROR) << "StreamVideoDrawQuad " << sizeof(StreamVideoDrawQuad); 1053 LOG(ERROR) << "StreamVideoDrawQuad " << sizeof(StreamVideoDrawQuad);
1011 break; 1054 break;
1055 case DrawQuad::Y_VIDEO_CONTENT:
1056 LOG(ERROR) << "YVideoDrawQuad " << sizeof(YVideoDrawQuad);
1057 break;
1012 case DrawQuad::YUV_VIDEO_CONTENT: 1058 case DrawQuad::YUV_VIDEO_CONTENT:
1013 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); 1059 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad);
1014 break; 1060 break;
1015 case DrawQuad::INVALID: 1061 case DrawQuad::INVALID:
1016 break; 1062 break;
1017 } 1063 }
1018 } 1064 }
1019 } 1065 }
1020 1066
1021 } // namespace 1067 } // namespace
1022 } // namespace cc 1068 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698