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 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 1763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1774 EXPECT_EQ(1U, dc_layer_list.size()); | 1774 EXPECT_EQ(1U, dc_layer_list.size()); |
1775 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); | 1775 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); |
1776 EXPECT_EQ(-1, dc_layer_list.back().shared_state->z_order); | 1776 EXPECT_EQ(-1, dc_layer_list.back().shared_state->z_order); |
1777 // The underlay rectangle is the same, so the damage is contained within | 1777 // The underlay rectangle is the same, so the damage is contained within |
1778 // the combined occluding rects for this and the last frame. | 1778 // the combined occluding rects for this and the last frame. |
1779 EXPECT_EQ(gfx::Rect(1, 2, 10, 9), damage_rect_); | 1779 EXPECT_EQ(gfx::Rect(1, 2, 10, 9), damage_rect_); |
1780 } | 1780 } |
1781 } | 1781 } |
1782 | 1782 |
1783 TEST_F(DCLayerOverlayTest, DamageRect) { | 1783 TEST_F(DCLayerOverlayTest, DamageRect) { |
1784 std::unique_ptr<RenderPass> pass = CreateRenderPass(); | 1784 for (int i = 0; i < 2; i++) { |
1785 CreateFullscreenCandidateYUVVideoQuad(resource_provider_.get(), | 1785 std::unique_ptr<RenderPass> pass = CreateRenderPass(); |
1786 pass->shared_quad_state_list.back(), | 1786 CreateFullscreenCandidateYUVVideoQuad(resource_provider_.get(), |
1787 pass.get()); | 1787 pass->shared_quad_state_list.back(), |
| 1788 pass.get()); |
1788 | 1789 |
1789 gfx::Rect damage_rect; | 1790 gfx::Rect damage_rect; |
1790 DCLayerOverlayList dc_layer_list; | 1791 DCLayerOverlayList dc_layer_list; |
1791 OverlayCandidateList overlay_list; | 1792 OverlayCandidateList overlay_list; |
1792 RenderPassFilterList render_pass_filters; | 1793 RenderPassFilterList render_pass_filters; |
1793 RenderPassFilterList render_pass_background_filters; | 1794 RenderPassFilterList render_pass_background_filters; |
1794 damage_rect_ = gfx::Rect(1, 1, 10, 10); | 1795 damage_rect_ = gfx::Rect(1, 1, 10, 10); |
1795 overlay_processor_->ProcessForOverlays( | 1796 overlay_processor_->ProcessForOverlays( |
1796 resource_provider_.get(), pass.get(), render_pass_filters, | 1797 resource_provider_.get(), pass.get(), render_pass_filters, |
1797 render_pass_background_filters, &overlay_list, nullptr, &dc_layer_list, | 1798 render_pass_background_filters, &overlay_list, nullptr, &dc_layer_list, |
1798 &damage_rect_, &content_bounds_); | 1799 &damage_rect_, &content_bounds_); |
1799 EXPECT_EQ(gfx::Rect(), damage_rect); | 1800 EXPECT_EQ(gfx::Rect(), damage_rect); |
1800 EXPECT_EQ(0U, overlay_list.size()); | 1801 EXPECT_EQ(0U, overlay_list.size()); |
1801 EXPECT_EQ(1U, dc_layer_list.size()); | 1802 EXPECT_EQ(1U, dc_layer_list.size()); |
1802 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); | 1803 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); |
1803 EXPECT_EQ(1, dc_layer_list.back().shared_state->z_order); | 1804 EXPECT_EQ(1, dc_layer_list.back().shared_state->z_order); |
1804 EXPECT_TRUE(damage_rect_.IsEmpty()); | 1805 // Damage rect should be unchanged on initial frame because of resize, but |
| 1806 // should be empty on the second frame because everything was put in a |
| 1807 // layer. |
| 1808 if (i == 1) |
| 1809 EXPECT_TRUE(damage_rect_.IsEmpty()); |
| 1810 else |
| 1811 EXPECT_EQ(gfx::Rect(1, 1, 10, 10), damage_rect_); |
| 1812 } |
1805 } | 1813 } |
1806 | 1814 |
1807 class OverlayInfoRendererGL : public GLRenderer { | 1815 class OverlayInfoRendererGL : public GLRenderer { |
1808 public: | 1816 public: |
1809 OverlayInfoRendererGL(const RendererSettings* settings, | 1817 OverlayInfoRendererGL(const RendererSettings* settings, |
1810 OutputSurface* output_surface, | 1818 OutputSurface* output_surface, |
1811 ResourceProvider* resource_provider) | 1819 ResourceProvider* resource_provider) |
1812 : GLRenderer(settings, output_surface, resource_provider, NULL, 0), | 1820 : GLRenderer(settings, output_surface, resource_provider, NULL, 0), |
1813 expect_overlays_(false) {} | 1821 expect_overlays_(false) {} |
1814 | 1822 |
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2456 kOverlayRect, render_pass_id_, 2, gfx::RectF(), gfx::Size(), | 2464 kOverlayRect, render_pass_id_, 2, gfx::RectF(), gfx::Size(), |
2457 gfx::Vector2dF(1, 1), gfx::PointF(), gfx::RectF()); | 2465 gfx::Vector2dF(1, 1), gfx::PointF(), gfx::RectF()); |
2458 } | 2466 } |
2459 | 2467 |
2460 ProcessForOverlays(); | 2468 ProcessForOverlays(); |
2461 EXPECT_EQ(0U, ca_layer_list_.size()); | 2469 EXPECT_EQ(0U, ca_layer_list_.size()); |
2462 } | 2470 } |
2463 | 2471 |
2464 } // namespace | 2472 } // namespace |
2465 } // namespace cc | 2473 } // namespace cc |
OLD | NEW |