| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/layers/video_layer_impl.h" | 5 #include "cc/layers/video_layer_impl.h" |
| 6 | 6 |
| 7 #include "cc/layers/video_frame_provider_client_impl.h" | 7 #include "cc/layers/video_frame_provider_client_impl.h" |
| 8 #include "cc/output/context_provider.h" | 8 #include "cc/output/context_provider.h" |
| 9 #include "cc/output/output_surface.h" | 9 #include "cc/output/output_surface.h" |
| 10 #include "cc/quads/draw_quad.h" | 10 #include "cc/quads/draw_quad.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 gfx::Rect occluded; | 56 gfx::Rect occluded; |
| 57 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); | 57 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |
| 58 | 58 |
| 59 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), | 59 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), |
| 60 gfx::Rect(layer_size)); | 60 gfx::Rect(layer_size)); |
| 61 EXPECT_EQ(1u, impl.quad_list().size()); | 61 EXPECT_EQ(1u, impl.quad_list().size()); |
| 62 } | 62 } |
| 63 | 63 |
| 64 { | 64 { |
| 65 SCOPED_TRACE("Full occlusion"); | 65 SCOPED_TRACE("Full occlusion"); |
| 66 gfx::Rect occluded(video_layer_impl->visible_content_rect()); | 66 gfx::Rect occluded(video_layer_impl->visible_layer_rect()); |
| 67 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); | 67 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |
| 68 | 68 |
| 69 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), gfx::Rect()); | 69 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), gfx::Rect()); |
| 70 EXPECT_EQ(impl.quad_list().size(), 0u); | 70 EXPECT_EQ(impl.quad_list().size(), 0u); |
| 71 } | 71 } |
| 72 | 72 |
| 73 { | 73 { |
| 74 SCOPED_TRACE("Partial occlusion"); | 74 SCOPED_TRACE("Partial occlusion"); |
| 75 gfx::Rect occluded(200, 0, 800, 1000); | 75 gfx::Rect occluded(200, 0, 800, 1000); |
| 76 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); | 76 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 impl.CalcDrawProps(viewport_size); | 169 impl.CalcDrawProps(viewport_size); |
| 170 gfx::Rect occluded; | 170 gfx::Rect occluded; |
| 171 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); | 171 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |
| 172 | 172 |
| 173 EXPECT_EQ(1u, impl.quad_list().size()); | 173 EXPECT_EQ(1u, impl.quad_list().size()); |
| 174 | 174 |
| 175 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); | 175 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); |
| 176 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); | 176 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); |
| 177 impl.quad_list() | 177 impl.quad_list() |
| 178 .front() | 178 .front() |
| 179 ->shared_quad_state->content_to_target_transform.TransformPoint(&p1); | 179 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p1); |
| 180 impl.quad_list() | 180 impl.quad_list() |
| 181 .front() | 181 .front() |
| 182 ->shared_quad_state->content_to_target_transform.TransformPoint(&p2); | 182 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p2); |
| 183 EXPECT_EQ(gfx::Point3F(0, 50, 0), p1); | 183 EXPECT_EQ(gfx::Point3F(0, 50, 0), p1); |
| 184 EXPECT_EQ(gfx::Point3F(100, 0, 0), p2); | 184 EXPECT_EQ(gfx::Point3F(100, 0, 0), p2); |
| 185 } | 185 } |
| 186 | 186 |
| 187 TEST(VideoLayerImplTest, Rotated90) { | 187 TEST(VideoLayerImplTest, Rotated90) { |
| 188 gfx::Size layer_size(100, 50); | 188 gfx::Size layer_size(100, 50); |
| 189 gfx::Size viewport_size(1000, 500); | 189 gfx::Size viewport_size(1000, 500); |
| 190 | 190 |
| 191 LayerTestCommon::LayerImplTest impl; | 191 LayerTestCommon::LayerImplTest impl; |
| 192 DebugSetImplThreadAndMainThreadBlocked(impl.proxy()); | 192 DebugSetImplThreadAndMainThreadBlocked(impl.proxy()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 208 impl.CalcDrawProps(viewport_size); | 208 impl.CalcDrawProps(viewport_size); |
| 209 gfx::Rect occluded; | 209 gfx::Rect occluded; |
| 210 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); | 210 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |
| 211 | 211 |
| 212 EXPECT_EQ(1u, impl.quad_list().size()); | 212 EXPECT_EQ(1u, impl.quad_list().size()); |
| 213 | 213 |
| 214 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); | 214 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); |
| 215 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); | 215 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); |
| 216 impl.quad_list() | 216 impl.quad_list() |
| 217 .front() | 217 .front() |
| 218 ->shared_quad_state->content_to_target_transform.TransformPoint(&p1); | 218 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p1); |
| 219 impl.quad_list() | 219 impl.quad_list() |
| 220 .front() | 220 .front() |
| 221 ->shared_quad_state->content_to_target_transform.TransformPoint(&p2); | 221 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p2); |
| 222 EXPECT_EQ(gfx::Point3F(0, 0, 0), p1); | 222 EXPECT_EQ(gfx::Point3F(0, 0, 0), p1); |
| 223 EXPECT_EQ(gfx::Point3F(100, 50, 0), p2); | 223 EXPECT_EQ(gfx::Point3F(100, 50, 0), p2); |
| 224 } | 224 } |
| 225 | 225 |
| 226 TEST(VideoLayerImplTest, Rotated180) { | 226 TEST(VideoLayerImplTest, Rotated180) { |
| 227 gfx::Size layer_size(100, 50); | 227 gfx::Size layer_size(100, 50); |
| 228 gfx::Size viewport_size(1000, 500); | 228 gfx::Size viewport_size(1000, 500); |
| 229 | 229 |
| 230 LayerTestCommon::LayerImplTest impl; | 230 LayerTestCommon::LayerImplTest impl; |
| 231 DebugSetImplThreadAndMainThreadBlocked(impl.proxy()); | 231 DebugSetImplThreadAndMainThreadBlocked(impl.proxy()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 247 impl.CalcDrawProps(viewport_size); | 247 impl.CalcDrawProps(viewport_size); |
| 248 gfx::Rect occluded; | 248 gfx::Rect occluded; |
| 249 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); | 249 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |
| 250 | 250 |
| 251 EXPECT_EQ(1u, impl.quad_list().size()); | 251 EXPECT_EQ(1u, impl.quad_list().size()); |
| 252 | 252 |
| 253 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); | 253 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); |
| 254 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); | 254 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); |
| 255 impl.quad_list() | 255 impl.quad_list() |
| 256 .front() | 256 .front() |
| 257 ->shared_quad_state->content_to_target_transform.TransformPoint(&p1); | 257 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p1); |
| 258 impl.quad_list() | 258 impl.quad_list() |
| 259 .front() | 259 .front() |
| 260 ->shared_quad_state->content_to_target_transform.TransformPoint(&p2); | 260 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p2); |
| 261 EXPECT_EQ(gfx::Point3F(100, 0, 0), p1); | 261 EXPECT_EQ(gfx::Point3F(100, 0, 0), p1); |
| 262 EXPECT_EQ(gfx::Point3F(0, 50, 0), p2); | 262 EXPECT_EQ(gfx::Point3F(0, 50, 0), p2); |
| 263 } | 263 } |
| 264 | 264 |
| 265 TEST(VideoLayerImplTest, Rotated270) { | 265 TEST(VideoLayerImplTest, Rotated270) { |
| 266 gfx::Size layer_size(100, 50); | 266 gfx::Size layer_size(100, 50); |
| 267 gfx::Size viewport_size(1000, 500); | 267 gfx::Size viewport_size(1000, 500); |
| 268 | 268 |
| 269 LayerTestCommon::LayerImplTest impl; | 269 LayerTestCommon::LayerImplTest impl; |
| 270 DebugSetImplThreadAndMainThreadBlocked(impl.proxy()); | 270 DebugSetImplThreadAndMainThreadBlocked(impl.proxy()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 286 impl.CalcDrawProps(viewport_size); | 286 impl.CalcDrawProps(viewport_size); |
| 287 gfx::Rect occluded; | 287 gfx::Rect occluded; |
| 288 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); | 288 impl.AppendQuadsWithOcclusion(video_layer_impl, occluded); |
| 289 | 289 |
| 290 EXPECT_EQ(1u, impl.quad_list().size()); | 290 EXPECT_EQ(1u, impl.quad_list().size()); |
| 291 | 291 |
| 292 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); | 292 gfx::Point3F p1(0, impl.quad_list().front()->rect.height(), 0); |
| 293 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); | 293 gfx::Point3F p2(impl.quad_list().front()->rect.width(), 0, 0); |
| 294 impl.quad_list() | 294 impl.quad_list() |
| 295 .front() | 295 .front() |
| 296 ->shared_quad_state->content_to_target_transform.TransformPoint(&p1); | 296 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p1); |
| 297 impl.quad_list() | 297 impl.quad_list() |
| 298 .front() | 298 .front() |
| 299 ->shared_quad_state->content_to_target_transform.TransformPoint(&p2); | 299 ->shared_quad_state->quad_to_target_transform.TransformPoint(&p2); |
| 300 EXPECT_EQ(gfx::Point3F(100, 50, 0), p1); | 300 EXPECT_EQ(gfx::Point3F(100, 50, 0), p1); |
| 301 EXPECT_EQ(gfx::Point3F(0, 0, 0), p2); | 301 EXPECT_EQ(gfx::Point3F(0, 0, 0), p2); |
| 302 } | 302 } |
| 303 | 303 |
| 304 void EmptyCallback(unsigned sync_point) { | 304 void EmptyCallback(unsigned sync_point) { |
| 305 } | 305 } |
| 306 | 306 |
| 307 TEST(VideoLayerImplTest, SoftwareVideoFrameGeneratesYUVQuad) { | 307 TEST(VideoLayerImplTest, SoftwareVideoFrameGeneratesYUVQuad) { |
| 308 gfx::Size layer_size(1000, 1000); | 308 gfx::Size layer_size(1000, 1000); |
| 309 gfx::Size viewport_size(1000, 1000); | 309 gfx::Size viewport_size(1000, 1000); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 const YUVVideoDrawQuad* yuv_draw_quad = | 376 const YUVVideoDrawQuad* yuv_draw_quad = |
| 377 static_cast<const YUVVideoDrawQuad*>(draw_quad); | 377 static_cast<const YUVVideoDrawQuad*>(draw_quad); |
| 378 EXPECT_EQ(yuv_draw_quad->uv_tex_size.height(), | 378 EXPECT_EQ(yuv_draw_quad->uv_tex_size.height(), |
| 379 (yuv_draw_quad->ya_tex_size.height() + 1) / 2); | 379 (yuv_draw_quad->ya_tex_size.height() + 1) / 2); |
| 380 EXPECT_EQ(yuv_draw_quad->uv_tex_size.width(), | 380 EXPECT_EQ(yuv_draw_quad->uv_tex_size.width(), |
| 381 (yuv_draw_quad->ya_tex_size.width() + 1) / 2); | 381 (yuv_draw_quad->ya_tex_size.width() + 1) / 2); |
| 382 } | 382 } |
| 383 | 383 |
| 384 } // namespace | 384 } // namespace |
| 385 } // namespace cc | 385 } // namespace cc |
| OLD | NEW |