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

Side by Side Diff: cc/output/overlay_unittest.cc

Issue 2780073002: Disable DirectComposition underlays and complex transforms by default. (Closed)
Patch Set: fix tests Created 3 years, 8 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
« no previous file with comments | « cc/output/gl_renderer_unittest.cc ('k') | ui/gl/gl_switches.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
11 #include "base/test/scoped_feature_list.h"
11 #include "cc/base/filter_operation.h" 12 #include "cc/base/filter_operation.h"
12 #include "cc/base/region.h" 13 #include "cc/base/region.h"
13 #include "cc/output/ca_layer_overlay.h" 14 #include "cc/output/ca_layer_overlay.h"
14 #include "cc/output/gl_renderer.h" 15 #include "cc/output/gl_renderer.h"
15 #include "cc/output/output_surface.h" 16 #include "cc/output/output_surface.h"
16 #include "cc/output/output_surface_client.h" 17 #include "cc/output/output_surface_client.h"
17 #include "cc/output/output_surface_frame.h" 18 #include "cc/output/output_surface_frame.h"
18 #include "cc/output/overlay_candidate_validator.h" 19 #include "cc/output/overlay_candidate_validator.h"
19 #include "cc/output/overlay_processor.h" 20 #include "cc/output/overlay_processor.h"
20 #include "cc/output/overlay_strategy_fullscreen.h" 21 #include "cc/output/overlay_strategy_fullscreen.h"
(...skipping 10 matching lines...) Expand all
31 #include "cc/test/fake_output_surface_client.h" 32 #include "cc/test/fake_output_surface_client.h"
32 #include "cc/test/fake_resource_provider.h" 33 #include "cc/test/fake_resource_provider.h"
33 #include "cc/test/geometry_test_utils.h" 34 #include "cc/test/geometry_test_utils.h"
34 #include "cc/test/test_context_provider.h" 35 #include "cc/test/test_context_provider.h"
35 #include "cc/test/test_shared_bitmap_manager.h" 36 #include "cc/test/test_shared_bitmap_manager.h"
36 #include "cc/test/test_web_graphics_context_3d.h" 37 #include "cc/test/test_web_graphics_context_3d.h"
37 #include "testing/gmock/include/gmock/gmock.h" 38 #include "testing/gmock/include/gmock/gmock.h"
38 #include "testing/gtest/include/gtest/gtest.h" 39 #include "testing/gtest/include/gtest/gtest.h"
39 #include "ui/events/latency_info.h" 40 #include "ui/events/latency_info.h"
40 #include "ui/gfx/geometry/rect_conversions.h" 41 #include "ui/gfx/geometry/rect_conversions.h"
42 #include "ui/gl/gl_switches.h"
41 43
42 using testing::_; 44 using testing::_;
43 using testing::Mock; 45 using testing::Mock;
44 46
45 namespace cc { 47 namespace cc {
46 namespace { 48 namespace {
47 49
48 const gfx::Size kDisplaySize(256, 256); 50 const gfx::Size kDisplaySize(256, 256);
49 const gfx::Rect kOverlayRect(0, 0, 256, 256); 51 const gfx::Rect kOverlayRect(0, 0, 256, 256);
50 const gfx::Rect kOverlayTopLeftRect(0, 0, 128, 128); 52 const gfx::Rect kOverlayTopLeftRect(0, 0, 128, 128);
(...skipping 1693 matching lines...) Expand 10 before | Expand all | Expand 10 after
1744 resource_provider_.get(), pass.get(), render_pass_filters, 1746 resource_provider_.get(), pass.get(), render_pass_filters,
1745 render_pass_background_filters, &overlay_list, &ca_layer_list, nullptr, 1747 render_pass_background_filters, &overlay_list, &ca_layer_list, nullptr,
1746 &damage_rect_, &content_bounds_); 1748 &damage_rect_, &content_bounds_);
1747 EXPECT_EQ(gfx::Rect(), damage_rect); 1749 EXPECT_EQ(gfx::Rect(), damage_rect);
1748 EXPECT_EQ(0U, overlay_list.size()); 1750 EXPECT_EQ(0U, overlay_list.size());
1749 EXPECT_EQ(0U, ca_layer_list.size()); 1751 EXPECT_EQ(0U, ca_layer_list.size());
1750 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); 1752 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
1751 } 1753 }
1752 1754
1753 TEST_F(DCLayerOverlayTest, AllowNonAxisAlignedTransform) { 1755 TEST_F(DCLayerOverlayTest, AllowNonAxisAlignedTransform) {
1756 base::test::ScopedFeatureList feature_list;
1757 feature_list.InitAndEnableFeature(
1758 features::kDirectCompositionComplexOverlays);
1754 std::unique_ptr<RenderPass> pass = CreateRenderPass(); 1759 std::unique_ptr<RenderPass> pass = CreateRenderPass();
1755 CreateFullscreenCandidateYUVVideoQuad(resource_provider_.get(), 1760 CreateFullscreenCandidateYUVVideoQuad(resource_provider_.get(),
1756 pass->shared_quad_state_list.back(), 1761 pass->shared_quad_state_list.back(),
1757 pass.get()); 1762 pass.get());
1758 pass->shared_quad_state_list.back() 1763 pass->shared_quad_state_list.back()
1759 ->quad_to_target_transform.RotateAboutZAxis(45.f); 1764 ->quad_to_target_transform.RotateAboutZAxis(45.f);
1760 1765
1761 gfx::Rect damage_rect; 1766 gfx::Rect damage_rect;
1762 DCLayerOverlayList dc_layer_list; 1767 DCLayerOverlayList dc_layer_list;
1763 OverlayCandidateList overlay_list; 1768 OverlayCandidateList overlay_list;
1764 RenderPassFilterList render_pass_filters; 1769 RenderPassFilterList render_pass_filters;
1765 RenderPassFilterList render_pass_background_filters; 1770 RenderPassFilterList render_pass_background_filters;
1766 damage_rect_ = gfx::Rect(1, 1, 10, 10); 1771 damage_rect_ = gfx::Rect(1, 1, 10, 10);
1767 overlay_processor_->ProcessForOverlays( 1772 overlay_processor_->ProcessForOverlays(
1768 resource_provider_.get(), pass.get(), render_pass_filters, 1773 resource_provider_.get(), pass.get(), render_pass_filters,
1769 render_pass_background_filters, &overlay_list, nullptr, &dc_layer_list, 1774 render_pass_background_filters, &overlay_list, nullptr, &dc_layer_list,
1770 &damage_rect_, &content_bounds_); 1775 &damage_rect_, &content_bounds_);
1771 EXPECT_EQ(gfx::Rect(), damage_rect); 1776 EXPECT_EQ(gfx::Rect(), damage_rect);
1772 EXPECT_EQ(0U, overlay_list.size()); 1777 EXPECT_EQ(0U, overlay_list.size());
1773 EXPECT_EQ(1U, dc_layer_list.size()); 1778 EXPECT_EQ(1U, dc_layer_list.size());
1774 EXPECT_EQ(1, dc_layer_list.back().shared_state->z_order); 1779 EXPECT_EQ(1, dc_layer_list.back().shared_state->z_order);
1775 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); 1780 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
1776 EXPECT_EQ(gfx::Rect(1, 1, 10, 10), damage_rect_); 1781 EXPECT_EQ(gfx::Rect(1, 1, 10, 10), damage_rect_);
1777 } 1782 }
1778 1783
1779 TEST_F(DCLayerOverlayTest, Occluded) { 1784 TEST_F(DCLayerOverlayTest, Occluded) {
1785 base::test::ScopedFeatureList feature_list;
1786 feature_list.InitAndEnableFeature(features::kDirectCompositionUnderlays);
1780 { 1787 {
1781 std::unique_ptr<RenderPass> pass = CreateRenderPass(); 1788 std::unique_ptr<RenderPass> pass = CreateRenderPass();
1782 CreateOpaqueQuadAt(resource_provider_.get(), 1789 CreateOpaqueQuadAt(resource_provider_.get(),
1783 pass->shared_quad_state_list.back(), pass.get(), 1790 pass->shared_quad_state_list.back(), pass.get(),
1784 gfx::Rect(0, 2, 100, 100), SK_ColorWHITE); 1791 gfx::Rect(0, 2, 100, 100), SK_ColorWHITE);
1785 CreateFullscreenCandidateYUVVideoQuad(resource_provider_.get(), 1792 CreateFullscreenCandidateYUVVideoQuad(resource_provider_.get(),
1786 pass->shared_quad_state_list.back(), 1793 pass->shared_quad_state_list.back(),
1787 pass.get()); 1794 pass.get());
1788 1795
1789 gfx::Rect damage_rect; 1796 gfx::Rect damage_rect;
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after
2518 kOverlayRect, render_pass_id_, 2, gfx::RectF(), gfx::Size(), 2525 kOverlayRect, render_pass_id_, 2, gfx::RectF(), gfx::Size(),
2519 gfx::Vector2dF(1, 1), gfx::PointF(), gfx::RectF()); 2526 gfx::Vector2dF(1, 1), gfx::PointF(), gfx::RectF());
2520 } 2527 }
2521 2528
2522 ProcessForOverlays(); 2529 ProcessForOverlays();
2523 EXPECT_EQ(0U, ca_layer_list_.size()); 2530 EXPECT_EQ(0U, ca_layer_list_.size());
2524 } 2531 }
2525 2532
2526 } // namespace 2533 } // namespace
2527 } // namespace cc 2534 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer_unittest.cc ('k') | ui/gl/gl_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698