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

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

Issue 2205133003: Implement new RPDQ copy logic for CALayer promotion. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@temp60_more_refactor
Patch Set: Comments from ccameron. Created 4 years, 4 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/overlay_processor.cc ('k') | cc/quads/render_pass_draw_quad.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 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 1123 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 pass.get()); 1134 pass.get());
1135 pass->shared_quad_state_list.back() 1135 pass->shared_quad_state_list.back()
1136 ->quad_to_target_transform.RotateAboutZAxis(45.f); 1136 ->quad_to_target_transform.RotateAboutZAxis(45.f);
1137 1137
1138 gfx::Rect damage_rect; 1138 gfx::Rect damage_rect;
1139 CALayerOverlayList ca_layer_list; 1139 CALayerOverlayList ca_layer_list;
1140 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); 1140 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get()));
1141 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), 1141 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(),
1142 &overlay_list, &ca_layer_list, 1142 &overlay_list, &ca_layer_list,
1143 &damage_rect); 1143 &damage_rect);
1144 EXPECT_EQ(0U, pass->quad_list.size()); 1144 EXPECT_EQ(gfx::Rect(), damage_rect);
1145 EXPECT_EQ(0U, overlay_list.size()); 1145 EXPECT_EQ(0U, overlay_list.size());
1146 EXPECT_EQ(1U, ca_layer_list.size()); 1146 EXPECT_EQ(1U, ca_layer_list.size());
1147 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); 1147 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
1148 } 1148 }
1149 1149
1150 TEST_F(CALayerOverlayTest, ThreeDTransform) { 1150 TEST_F(CALayerOverlayTest, ThreeDTransform) {
1151 std::unique_ptr<RenderPass> pass = CreateRenderPass(); 1151 std::unique_ptr<RenderPass> pass = CreateRenderPass();
1152 CreateFullscreenCandidateQuad(resource_provider_.get(), 1152 CreateFullscreenCandidateQuad(resource_provider_.get(),
1153 pass->shared_quad_state_list.back(), 1153 pass->shared_quad_state_list.back(),
1154 pass.get()); 1154 pass.get());
(...skipping 22 matching lines...) Expand all
1177 pass.get()); 1177 pass.get());
1178 pass->shared_quad_state_list.back()->is_clipped = true; 1178 pass->shared_quad_state_list.back()->is_clipped = true;
1179 pass->shared_quad_state_list.back()->clip_rect = kOverlayRect; 1179 pass->shared_quad_state_list.back()->clip_rect = kOverlayRect;
1180 1180
1181 gfx::Rect damage_rect; 1181 gfx::Rect damage_rect;
1182 CALayerOverlayList ca_layer_list; 1182 CALayerOverlayList ca_layer_list;
1183 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); 1183 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get()));
1184 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), 1184 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(),
1185 &overlay_list, &ca_layer_list, 1185 &overlay_list, &ca_layer_list,
1186 &damage_rect); 1186 &damage_rect);
1187 EXPECT_EQ(0U, pass->quad_list.size()); 1187 EXPECT_EQ(gfx::Rect(), damage_rect);
1188 EXPECT_EQ(0U, overlay_list.size()); 1188 EXPECT_EQ(0U, overlay_list.size());
1189 EXPECT_EQ(1U, ca_layer_list.size()); 1189 EXPECT_EQ(1U, ca_layer_list.size());
1190 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); 1190 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
1191 } 1191 }
1192 1192
1193 TEST_F(CALayerOverlayTest, NontrivialClip) { 1193 TEST_F(CALayerOverlayTest, NontrivialClip) {
1194 std::unique_ptr<RenderPass> pass = CreateRenderPass(); 1194 std::unique_ptr<RenderPass> pass = CreateRenderPass();
1195 CreateFullscreenCandidateQuad(resource_provider_.get(), 1195 CreateFullscreenCandidateQuad(resource_provider_.get(),
1196 pass->shared_quad_state_list.back(), 1196 pass->shared_quad_state_list.back(),
1197 pass.get()); 1197 pass.get());
1198 pass->shared_quad_state_list.back()->is_clipped = true; 1198 pass->shared_quad_state_list.back()->is_clipped = true;
1199 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(64, 64, 128, 128); 1199 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(64, 64, 128, 128);
1200 1200
1201 gfx::Rect damage_rect; 1201 gfx::Rect damage_rect;
1202 CALayerOverlayList ca_layer_list; 1202 CALayerOverlayList ca_layer_list;
1203 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); 1203 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get()));
1204 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), 1204 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(),
1205 &overlay_list, &ca_layer_list, 1205 &overlay_list, &ca_layer_list,
1206 &damage_rect); 1206 &damage_rect);
1207 EXPECT_EQ(0U, pass->quad_list.size()); 1207 EXPECT_EQ(gfx::Rect(), damage_rect);
1208 EXPECT_EQ(0U, overlay_list.size()); 1208 EXPECT_EQ(0U, overlay_list.size());
1209 EXPECT_EQ(1U, ca_layer_list.size()); 1209 EXPECT_EQ(1U, ca_layer_list.size());
1210 EXPECT_TRUE(ca_layer_list.back().shared_state->is_clipped); 1210 EXPECT_TRUE(ca_layer_list.back().shared_state->is_clipped);
1211 EXPECT_EQ(gfx::RectF(64, 64, 128, 128), 1211 EXPECT_EQ(gfx::RectF(64, 64, 128, 128),
1212 ca_layer_list.back().shared_state->clip_rect); 1212 ca_layer_list.back().shared_state->clip_rect);
1213 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); 1213 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
1214 } 1214 }
1215 1215
1216 TEST_F(CALayerOverlayTest, SkipTransparent) { 1216 TEST_F(CALayerOverlayTest, SkipTransparent) {
1217 std::unique_ptr<RenderPass> pass = CreateRenderPass(); 1217 std::unique_ptr<RenderPass> pass = CreateRenderPass();
1218 CreateFullscreenCandidateQuad(resource_provider_.get(), 1218 CreateFullscreenCandidateQuad(resource_provider_.get(),
1219 pass->shared_quad_state_list.back(), 1219 pass->shared_quad_state_list.back(),
1220 pass.get()); 1220 pass.get());
1221 pass->shared_quad_state_list.back()->opacity = 0; 1221 pass->shared_quad_state_list.back()->opacity = 0;
1222 1222
1223 gfx::Rect damage_rect; 1223 gfx::Rect damage_rect;
1224 CALayerOverlayList ca_layer_list; 1224 CALayerOverlayList ca_layer_list;
1225 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); 1225 OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get()));
1226 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), 1226 overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(),
1227 &overlay_list, &ca_layer_list, 1227 &overlay_list, &ca_layer_list,
1228 &damage_rect); 1228 &damage_rect);
1229 EXPECT_EQ(0U, pass->quad_list.size()); 1229 EXPECT_EQ(gfx::Rect(), damage_rect);
1230 EXPECT_EQ(0U, overlay_list.size()); 1230 EXPECT_EQ(0U, overlay_list.size());
1231 EXPECT_EQ(0U, ca_layer_list.size()); 1231 EXPECT_EQ(0U, ca_layer_list.size());
1232 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count()); 1232 EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
1233 } 1233 }
1234 1234
1235 class OverlayInfoRendererGL : public GLRenderer { 1235 class OverlayInfoRendererGL : public GLRenderer {
1236 public: 1236 public:
1237 OverlayInfoRendererGL(RendererClient* client, 1237 OverlayInfoRendererGL(RendererClient* client,
1238 const RendererSettings* settings, 1238 const RendererSettings* settings,
1239 OutputSurface* output_surface, 1239 OutputSurface* output_surface,
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 ProcessForOverlays(); 1816 ProcessForOverlays();
1817 EXPECT_EQ(1U, ca_layer_list_.size()); 1817 EXPECT_EQ(1U, ca_layer_list_.size());
1818 } 1818 }
1819 1819
1820 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBlurFilterScale) { 1820 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBlurFilterScale) {
1821 filters_.Append(FilterOperation::CreateBlurFilter(0.8f)); 1821 filters_.Append(FilterOperation::CreateBlurFilter(0.8f));
1822 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, 1822 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect,
1823 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), 1823 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(),
1824 filters_, gfx::Vector2dF(1, 2), background_filters_); 1824 filters_, gfx::Vector2dF(1, 2), background_filters_);
1825 ProcessForOverlays(); 1825 ProcessForOverlays();
1826 EXPECT_EQ(0U, ca_layer_list_.size()); 1826 EXPECT_EQ(1U, ca_layer_list_.size());
1827 } 1827 }
1828 1828
1829 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadDropShadowFilterScale) { 1829 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadDropShadowFilterScale) {
1830 filters_.Append(FilterOperation::CreateDropShadowFilter(gfx::Point(10, 20), 1830 filters_.Append(FilterOperation::CreateDropShadowFilter(gfx::Point(10, 20),
1831 1.0f, SK_ColorGREEN)); 1831 1.0f, SK_ColorGREEN));
1832 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, 1832 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect,
1833 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), 1833 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(),
1834 filters_, gfx::Vector2dF(1, 2), background_filters_); 1834 filters_, gfx::Vector2dF(1, 2), background_filters_);
1835 ProcessForOverlays(); 1835 ProcessForOverlays();
1836 EXPECT_EQ(0U, ca_layer_list_.size()); 1836 EXPECT_EQ(1U, ca_layer_list_.size());
1837 } 1837 }
1838 1838
1839 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBackgroundFilter) { 1839 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBackgroundFilter) {
1840 background_filters_.Append(FilterOperation::CreateGrayscaleFilter(0.1f)); 1840 background_filters_.Append(FilterOperation::CreateGrayscaleFilter(0.1f));
1841 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, 1841 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect,
1842 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), 1842 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(),
1843 filters_, gfx::Vector2dF(1, 1), background_filters_); 1843 filters_, gfx::Vector2dF(1, 1), background_filters_);
1844 ProcessForOverlays(); 1844 ProcessForOverlays();
1845 EXPECT_EQ(0U, ca_layer_list_.size()); 1845 EXPECT_EQ(0U, ca_layer_list_.size());
1846 } 1846 }
1847 1847
1848 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadMask) { 1848 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadMask) {
1849 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, 1849 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect,
1850 kOverlayRect, render_pass_id_, 2, gfx::Vector2dF(), gfx::Size(), 1850 kOverlayRect, render_pass_id_, 2, gfx::Vector2dF(), gfx::Size(),
1851 filters_, gfx::Vector2dF(1, 1), background_filters_); 1851 filters_, gfx::Vector2dF(1, 1), background_filters_);
1852 ProcessForOverlays(); 1852 ProcessForOverlays();
1853 EXPECT_EQ(0U, ca_layer_list_.size()); 1853 EXPECT_EQ(1U, ca_layer_list_.size());
1854 } 1854 }
1855 1855
1856 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadUnsupportedFilter) { 1856 TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadUnsupportedFilter) {
1857 filters_.Append(FilterOperation::CreateZoomFilter(0.9f, 1)); 1857 filters_.Append(FilterOperation::CreateZoomFilter(0.9f, 1));
1858 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, 1858 quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect,
1859 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), 1859 kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(),
1860 filters_, gfx::Vector2dF(1, 1), background_filters_); 1860 filters_, gfx::Vector2dF(1, 1), background_filters_);
1861 ProcessForOverlays(); 1861 ProcessForOverlays();
1862 EXPECT_EQ(0U, ca_layer_list_.size()); 1862 EXPECT_EQ(0U, ca_layer_list_.size());
1863 } 1863 }
1864 1864
1865 } // namespace 1865 } // namespace
1866 } // namespace cc 1866 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/overlay_processor.cc ('k') | cc/quads/render_pass_draw_quad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698