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

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

Issue 2102203003: Color: Plumb color profile from ui::Compositor to cc::DirectRenderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on top of s/ColorProfile/ColorSpace/ Created 4 years, 5 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/output_surface.cc ('k') | cc/output/renderer.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 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1213 1213
1214 void Init(bool use_validator) { 1214 void Init(bool use_validator) {
1215 if (use_validator) 1215 if (use_validator)
1216 output_surface_->SetOverlayCandidateValidator(new SingleOverlayValidator); 1216 output_surface_->SetOverlayCandidateValidator(new SingleOverlayValidator);
1217 1217
1218 renderer_ = base::WrapUnique(new OverlayInfoRendererGL( 1218 renderer_ = base::WrapUnique(new OverlayInfoRendererGL(
1219 &renderer_client_, &settings_, output_surface_.get(), 1219 &renderer_client_, &settings_, output_surface_.get(),
1220 resource_provider_.get())); 1220 resource_provider_.get()));
1221 } 1221 }
1222 1222
1223 void DrawFrame(RenderPassList* pass_list, const gfx::Rect& viewport_rect) {
1224 renderer_->DrawFrame(pass_list, 1.f, gfx::ColorSpace(), viewport_rect,
1225 viewport_rect, false);
1226 }
1223 void SwapBuffers() { 1227 void SwapBuffers() {
1224 renderer_->SwapBuffers(CompositorFrameMetadata()); 1228 renderer_->SwapBuffers(CompositorFrameMetadata());
1225 output_surface_->OnSwapBuffersComplete(); 1229 output_surface_->OnSwapBuffersComplete();
1226 renderer_->SwapBuffersComplete(); 1230 renderer_->SwapBuffersComplete();
1227 } 1231 }
1228 void SwapBuffersWithoutComplete() { 1232 void SwapBuffersWithoutComplete() {
1229 renderer_->SwapBuffers(CompositorFrameMetadata()); 1233 renderer_->SwapBuffers(CompositorFrameMetadata());
1230 } 1234 }
1231 void SwapBuffersComplete() { 1235 void SwapBuffersComplete() {
1232 output_surface_->OnSwapBuffersComplete(); 1236 output_surface_->OnSwapBuffersComplete();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 // so only draw 2 quads. 1279 // so only draw 2 quads.
1276 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(2); 1280 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(2);
1277 EXPECT_CALL(scheduler_, 1281 EXPECT_CALL(scheduler_,
1278 Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _, 1282 Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _,
1279 gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1))) 1283 gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1)))
1280 .Times(1); 1284 .Times(1);
1281 EXPECT_CALL(scheduler_, Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _, 1285 EXPECT_CALL(scheduler_, Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _,
1282 kOverlayBottomRightRect, 1286 kOverlayBottomRightRect,
1283 BoundingRect(kUVTopLeft, kUVBottomRight))) 1287 BoundingRect(kUVTopLeft, kUVBottomRight)))
1284 .Times(1); 1288 .Times(1);
1285 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); 1289 DrawFrame(&pass_list, viewport_rect);
1286 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count()); 1290 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count());
1287 1291
1288 SwapBuffers(); 1292 SwapBuffers();
1289 1293
1290 Mock::VerifyAndClearExpectations(renderer_.get()); 1294 Mock::VerifyAndClearExpectations(renderer_.get());
1291 Mock::VerifyAndClearExpectations(&scheduler_); 1295 Mock::VerifyAndClearExpectations(&scheduler_);
1292 } 1296 }
1293 1297
1294 TEST_F(GLRendererWithOverlaysTest, OccludedQuadInUnderlay) { 1298 TEST_F(GLRendererWithOverlaysTest, OccludedQuadInUnderlay) {
1295 bool use_validator = true; 1299 bool use_validator = true;
(...skipping 19 matching lines...) Expand all
1315 // Expect to be replaced with transparent hole quad and placed in underlay. 1319 // Expect to be replaced with transparent hole quad and placed in underlay.
1316 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3); 1320 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3);
1317 EXPECT_CALL(scheduler_, 1321 EXPECT_CALL(scheduler_,
1318 Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _, 1322 Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _,
1319 gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1))) 1323 gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1)))
1320 .Times(1); 1324 .Times(1);
1321 EXPECT_CALL(scheduler_, 1325 EXPECT_CALL(scheduler_,
1322 Schedule(-1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect, 1326 Schedule(-1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect,
1323 BoundingRect(kUVTopLeft, kUVBottomRight))) 1327 BoundingRect(kUVTopLeft, kUVBottomRight)))
1324 .Times(1); 1328 .Times(1);
1325 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); 1329 DrawFrame(&pass_list, viewport_rect);
1326 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count()); 1330 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count());
1327 1331
1328 SwapBuffers(); 1332 SwapBuffers();
1329 1333
1330 Mock::VerifyAndClearExpectations(renderer_.get()); 1334 Mock::VerifyAndClearExpectations(renderer_.get());
1331 Mock::VerifyAndClearExpectations(&scheduler_); 1335 Mock::VerifyAndClearExpectations(&scheduler_);
1332 } 1336 }
1333 1337
1334 TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) { 1338 TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) {
1335 bool use_validator = false; 1339 bool use_validator = false;
(...skipping 12 matching lines...) Expand all
1348 CreateFullscreenOpaqueQuad(resource_provider_.get(), 1352 CreateFullscreenOpaqueQuad(resource_provider_.get(),
1349 pass->shared_quad_state_list.back(), pass.get()); 1353 pass->shared_quad_state_list.back(), pass.get());
1350 1354
1351 RenderPassList pass_list; 1355 RenderPassList pass_list;
1352 pass_list.push_back(std::move(pass)); 1356 pass_list.push_back(std::move(pass));
1353 1357
1354 // Should not see the primary surface's overlay. 1358 // Should not see the primary surface's overlay.
1355 output_surface_->set_is_displayed_as_overlay_plane(false); 1359 output_surface_->set_is_displayed_as_overlay_plane(false);
1356 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3); 1360 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3);
1357 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); 1361 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
1358 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); 1362 DrawFrame(&pass_list, viewport_rect);
1359 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count()); 1363 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count());
1360 SwapBuffers(); 1364 SwapBuffers();
1361 Mock::VerifyAndClearExpectations(renderer_.get()); 1365 Mock::VerifyAndClearExpectations(renderer_.get());
1362 Mock::VerifyAndClearExpectations(&scheduler_); 1366 Mock::VerifyAndClearExpectations(&scheduler_);
1363 } 1367 }
1364 1368
1365 // GLRenderer skips drawing occluded quads when partial swap is enabled. 1369 // GLRenderer skips drawing occluded quads when partial swap is enabled.
1366 TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenPartialSwapEnabled) { 1370 TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenPartialSwapEnabled) {
1367 provider_->TestContext3d()->set_have_post_sub_buffer(true); 1371 provider_->TestContext3d()->set_have_post_sub_buffer(true);
1368 settings_.partial_swap_enabled = true; 1372 settings_.partial_swap_enabled = true;
(...skipping 11 matching lines...) Expand all
1380 pass->shared_quad_state_list.back(), pass.get()); 1384 pass->shared_quad_state_list.back(), pass.get());
1381 CreateFullscreenOpaqueQuad(resource_provider_.get(), 1385 CreateFullscreenOpaqueQuad(resource_provider_.get(),
1382 pass->shared_quad_state_list.back(), pass.get()); 1386 pass->shared_quad_state_list.back(), pass.get());
1383 1387
1384 RenderPassList pass_list; 1388 RenderPassList pass_list;
1385 pass_list.push_back(std::move(pass)); 1389 pass_list.push_back(std::move(pass));
1386 1390
1387 output_surface_->set_is_displayed_as_overlay_plane(true); 1391 output_surface_->set_is_displayed_as_overlay_plane(true);
1388 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0); 1392 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0);
1389 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2); 1393 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
1390 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); 1394 DrawFrame(&pass_list, viewport_rect);
1391 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count()); 1395 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count());
1392 SwapBuffers(); 1396 SwapBuffers();
1393 Mock::VerifyAndClearExpectations(renderer_.get()); 1397 Mock::VerifyAndClearExpectations(renderer_.get());
1394 Mock::VerifyAndClearExpectations(&scheduler_); 1398 Mock::VerifyAndClearExpectations(&scheduler_);
1395 } 1399 }
1396 1400
1397 // GLRenderer skips drawing occluded quads when empty swap is enabled. 1401 // GLRenderer skips drawing occluded quads when empty swap is enabled.
1398 TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenEmptySwapAllowed) { 1402 TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenEmptySwapAllowed) {
1399 provider_->TestContext3d()->set_have_commit_overlay_planes(true); 1403 provider_->TestContext3d()->set_have_commit_overlay_planes(true);
1400 bool use_validator = true; 1404 bool use_validator = true;
(...skipping 11 matching lines...) Expand all
1412 pass->shared_quad_state_list.back(), pass.get()); 1416 pass->shared_quad_state_list.back(), pass.get());
1413 CreateFullscreenOpaqueQuad(resource_provider_.get(), 1417 CreateFullscreenOpaqueQuad(resource_provider_.get(),
1414 pass->shared_quad_state_list.back(), pass.get()); 1418 pass->shared_quad_state_list.back(), pass.get());
1415 1419
1416 RenderPassList pass_list; 1420 RenderPassList pass_list;
1417 pass_list.push_back(std::move(pass)); 1421 pass_list.push_back(std::move(pass));
1418 1422
1419 output_surface_->set_is_displayed_as_overlay_plane(true); 1423 output_surface_->set_is_displayed_as_overlay_plane(true);
1420 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0); 1424 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0);
1421 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2); 1425 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
1422 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); 1426 DrawFrame(&pass_list, viewport_rect);
1423 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count()); 1427 EXPECT_EQ(1U, output_surface_->bind_framebuffer_count());
1424 SwapBuffers(); 1428 SwapBuffers();
1425 Mock::VerifyAndClearExpectations(renderer_.get()); 1429 Mock::VerifyAndClearExpectations(renderer_.get());
1426 Mock::VerifyAndClearExpectations(&scheduler_); 1430 Mock::VerifyAndClearExpectations(&scheduler_);
1427 } 1431 }
1428 1432
1429 TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) { 1433 TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
1430 bool use_validator = true; 1434 bool use_validator = true;
1431 Init(use_validator); 1435 Init(use_validator);
1432 renderer_->set_expect_overlays(true); 1436 renderer_->set_expect_overlays(true);
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
1645 1649
1646 ReturnResourceInUseQuery(resource2); 1650 ReturnResourceInUseQuery(resource2);
1647 ReturnResourceInUseQuery(resource3); 1651 ReturnResourceInUseQuery(resource3);
1648 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 1652 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
1649 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); 1653 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
1650 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource3)); 1654 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource3));
1651 } 1655 }
1652 1656
1653 } // namespace 1657 } // namespace
1654 } // namespace cc 1658 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/output_surface.cc ('k') | cc/output/renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698