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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "cc/base/region.h" | 10 #include "cc/base/region.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
34 #include "ui/gfx/geometry/rect_conversions.h" | 34 #include "ui/gfx/geometry/rect_conversions.h" |
35 | 35 |
36 using testing::_; | 36 using testing::_; |
37 using testing::Mock; | 37 using testing::Mock; |
38 | 38 |
39 namespace cc { | 39 namespace cc { |
40 namespace { | 40 namespace { |
41 | 41 |
42 const gfx::Size kDisplaySize(256, 256); | 42 const gfx::Size kDisplaySize(256, 256); |
43 const gfx::Rect kOverlayRect(0, 0, 128, 128); | 43 const gfx::Rect kOverlayRect(0, 0, 256, 256); |
44 const gfx::Rect kOverlayTopLeftRect(0, 0, 64, 64); | 44 const gfx::Rect kOverlayTopLeftRect(0, 0, 128, 128); |
45 const gfx::Rect kOverlayBottomRightRect(64, 64, 64, 64); | 45 const gfx::Rect kOverlayBottomRightRect(128, 128, 128, 128); |
46 const gfx::Rect kOverlayClipRect(0, 0, 128, 128); | 46 const gfx::Rect kOverlayClipRect(0, 0, 128, 128); |
47 const gfx::PointF kUVTopLeft(0.1f, 0.2f); | 47 const gfx::PointF kUVTopLeft(0.1f, 0.2f); |
48 const gfx::PointF kUVBottomRight(1.0f, 1.0f); | 48 const gfx::PointF kUVBottomRight(1.0f, 1.0f); |
49 const gfx::Transform kNormalTransform = | 49 const gfx::Transform kNormalTransform = |
50 gfx::Transform(0.9f, 0, 0, 0.8f, 0.1f, 0.2f); // x,y -> x,y. | 50 gfx::Transform(0.9f, 0, 0, 0.8f, 0.1f, 0.2f); // x,y -> x,y. |
51 const gfx::Transform kXMirrorTransform = | 51 const gfx::Transform kXMirrorTransform = |
52 gfx::Transform(-0.9f, 0, 0, 0.8f, 1.0f, 0.2f); // x,y -> 1-x,y. | 52 gfx::Transform(-0.9f, 0, 0, 0.8f, 1.0f, 0.2f); // x,y -> 1-x,y. |
53 const gfx::Transform kYMirrorTransform = | 53 const gfx::Transform kYMirrorTransform = |
54 gfx::Transform(0.9f, 0, 0, -0.8f, 0.1f, 1.0f); // x,y -> x,1-y. | 54 gfx::Transform(0.9f, 0, 0, -0.8f, 0.1f, 1.0f); // x,y -> x,1-y. |
55 const gfx::Transform kBothMirrorTransform = | 55 const gfx::Transform kBothMirrorTransform = |
(...skipping 14 matching lines...) Expand all Loading... |
70 } | 70 } |
71 bool AllowCALayerOverlays() override { return false; } | 71 bool AllowCALayerOverlays() override { return false; } |
72 void CheckOverlaySupport(OverlayCandidateList* surfaces) override { | 72 void CheckOverlaySupport(OverlayCandidateList* surfaces) override { |
73 // We may have 1 or 2 surfaces depending on whether this ran through the | 73 // We may have 1 or 2 surfaces depending on whether this ran through the |
74 // full renderer and picked up the output surface, or not. | 74 // full renderer and picked up the output surface, or not. |
75 ASSERT_LE(1U, surfaces->size()); | 75 ASSERT_LE(1U, surfaces->size()); |
76 ASSERT_GE(2U, surfaces->size()); | 76 ASSERT_GE(2U, surfaces->size()); |
77 | 77 |
78 OverlayCandidate& candidate = surfaces->back(); | 78 OverlayCandidate& candidate = surfaces->back(); |
79 EXPECT_TRUE(!candidate.use_output_surface_for_resource); | 79 EXPECT_TRUE(!candidate.use_output_surface_for_resource); |
80 if (candidate.display_rect.width() == 64) { | 80 if (candidate.display_rect.width() == kOverlayBottomRightRect.width()) { |
81 EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect), candidate.display_rect); | 81 EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect), candidate.display_rect); |
82 } else { | 82 } else { |
83 EXPECT_NEAR(kOverlayRect.x(), candidate.display_rect.x(), 0.01f); | 83 EXPECT_NEAR(kOverlayRect.x(), candidate.display_rect.x(), 0.01f); |
84 EXPECT_NEAR(kOverlayRect.y(), candidate.display_rect.y(), 0.01f); | 84 EXPECT_NEAR(kOverlayRect.y(), candidate.display_rect.y(), 0.01f); |
85 EXPECT_NEAR(kOverlayRect.width(), candidate.display_rect.width(), 0.01f); | 85 EXPECT_NEAR(kOverlayRect.width(), candidate.display_rect.width(), 0.01f); |
86 EXPECT_NEAR(kOverlayRect.height(), candidate.display_rect.height(), | 86 EXPECT_NEAR(kOverlayRect.height(), candidate.display_rect.height(), |
87 0.01f); | 87 0.01f); |
88 } | 88 } |
89 EXPECT_FLOAT_RECT_EQ(BoundingRect(kUVTopLeft, kUVBottomRight), | 89 EXPECT_FLOAT_RECT_EQ(BoundingRect(kUVTopLeft, kUVBottomRight), |
90 candidate.uv_rect); | 90 candidate.uv_rect); |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 overlay_quad->SetNew(shared_quad_state, rect, rect, rect, resource_id, | 263 overlay_quad->SetNew(shared_quad_state, rect, rect, rect, resource_id, |
264 resource_size_in_pixels, transform); | 264 resource_size_in_pixels, transform); |
265 | 265 |
266 return overlay_quad; | 266 return overlay_quad; |
267 } | 267 } |
268 | 268 |
269 TextureDrawQuad* CreateFullscreenCandidateQuad( | 269 TextureDrawQuad* CreateFullscreenCandidateQuad( |
270 ResourceProvider* resource_provider, | 270 ResourceProvider* resource_provider, |
271 const SharedQuadState* shared_quad_state, | 271 const SharedQuadState* shared_quad_state, |
272 RenderPass* render_pass) { | 272 RenderPass* render_pass) { |
273 return CreateCandidateQuadAt( | 273 return CreateCandidateQuadAt(resource_provider, shared_quad_state, |
274 resource_provider, shared_quad_state, render_pass, kOverlayRect); | 274 render_pass, render_pass->output_rect); |
275 } | 275 } |
276 | 276 |
277 StreamVideoDrawQuad* CreateFullscreenCandidateVideoQuad( | 277 StreamVideoDrawQuad* CreateFullscreenCandidateVideoQuad( |
278 ResourceProvider* resource_provider, | 278 ResourceProvider* resource_provider, |
279 const SharedQuadState* shared_quad_state, | 279 const SharedQuadState* shared_quad_state, |
280 RenderPass* render_pass, | 280 RenderPass* render_pass, |
281 const gfx::Transform& transform) { | 281 const gfx::Transform& transform) { |
282 return CreateCandidateVideoQuadAt(resource_provider, shared_quad_state, | 282 return CreateCandidateVideoQuadAt(resource_provider, shared_quad_state, |
283 render_pass, kOverlayRect, transform); | 283 render_pass, render_pass->output_rect, |
| 284 transform); |
284 } | 285 } |
285 | 286 |
286 void CreateOpaqueQuadAt(ResourceProvider* resource_provider, | 287 void CreateOpaqueQuadAt(ResourceProvider* resource_provider, |
287 const SharedQuadState* shared_quad_state, | 288 const SharedQuadState* shared_quad_state, |
288 RenderPass* render_pass, | 289 RenderPass* render_pass, |
289 const gfx::Rect& rect) { | 290 const gfx::Rect& rect) { |
290 SolidColorDrawQuad* color_quad = | 291 SolidColorDrawQuad* color_quad = |
291 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 292 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
292 color_quad->SetNew(shared_quad_state, rect, rect, SK_ColorBLACK, false); | 293 color_quad->SetNew(shared_quad_state, rect, rect, SK_ColorBLACK, false); |
293 } | 294 } |
294 | 295 |
295 void CreateFullscreenOpaqueQuad(ResourceProvider* resource_provider, | 296 void CreateFullscreenOpaqueQuad(ResourceProvider* resource_provider, |
296 const SharedQuadState* shared_quad_state, | 297 const SharedQuadState* shared_quad_state, |
297 RenderPass* render_pass) { | 298 RenderPass* render_pass) { |
298 CreateOpaqueQuadAt(resource_provider, shared_quad_state, render_pass, | 299 CreateOpaqueQuadAt(resource_provider, shared_quad_state, render_pass, |
299 kOverlayRect); | 300 render_pass->output_rect); |
300 } | 301 } |
301 | 302 |
302 static void CompareRenderPassLists(const RenderPassList& expected_list, | 303 static void CompareRenderPassLists(const RenderPassList& expected_list, |
303 const RenderPassList& actual_list) { | 304 const RenderPassList& actual_list) { |
304 EXPECT_EQ(expected_list.size(), actual_list.size()); | 305 EXPECT_EQ(expected_list.size(), actual_list.size()); |
305 for (size_t i = 0; i < actual_list.size(); ++i) { | 306 for (size_t i = 0; i < actual_list.size(); ++i) { |
306 RenderPass* expected = expected_list[i].get(); | 307 RenderPass* expected = expected_list[i].get(); |
307 RenderPass* actual = actual_list[i].get(); | 308 RenderPass* actual = actual_list[i].get(); |
308 | 309 |
309 EXPECT_EQ(expected->id, actual->id); | 310 EXPECT_EQ(expected->id, actual->id); |
(...skipping 1324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1634 | 1635 |
1635 ReturnResourceInUseQuery(resource2); | 1636 ReturnResourceInUseQuery(resource2); |
1636 ReturnResourceInUseQuery(resource3); | 1637 ReturnResourceInUseQuery(resource3); |
1637 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 1638 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
1638 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); | 1639 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); |
1639 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource3)); | 1640 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource3)); |
1640 } | 1641 } |
1641 | 1642 |
1642 } // namespace | 1643 } // namespace |
1643 } // namespace cc | 1644 } // namespace cc |
OLD | NEW |