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

Side by Side Diff: cc/trees/layer_tree_host_unittest_delegated.cc

Issue 250083002: cc: Use the onscreen context to perform composited ganesh filters. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: onscreenfilters: nit Created 6 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 | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_unittest_context.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 } 460 }
461 461
462 protected: 462 protected:
463 int num_activates_; 463 int num_activates_;
464 int num_output_surfaces_initialized_; 464 int num_output_surfaces_initialized_;
465 }; 465 };
466 466
467 SINGLE_AND_MULTI_THREAD_TEST_F( 467 SINGLE_AND_MULTI_THREAD_TEST_F(
468 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost); 468 LayerTreeHostDelegatedTestInvalidFrameAfterContextLost);
469 469
470 class LayerTreeHostDelegatedTestOffscreenContext_NoFilters
471 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
472 protected:
473 virtual void BeginTest() OVERRIDE {
474 scoped_ptr<DelegatedFrameData> frame =
475 CreateFrameData(gfx::Rect(0, 0, 1, 1),
476 gfx::Rect(0, 0, 1, 1));
477 SetFrameData(frame.Pass());
478
479 PostSetNeedsCommitToMainThread();
480 }
481
482 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
483 EXPECT_FALSE(host_impl->offscreen_context_provider());
484 EndTest();
485 }
486 };
487
488 SINGLE_AND_MULTI_THREAD_TEST_F(
489 LayerTreeHostDelegatedTestOffscreenContext_NoFilters);
490
491 class LayerTreeHostDelegatedTestOffscreenContext_Filters
492 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
493 protected:
494 virtual void BeginTest() OVERRIDE {
495 scoped_ptr<DelegatedFrameData> frame =
496 CreateFrameData(gfx::Rect(0, 0, 1, 1),
497 gfx::Rect(0, 0, 1, 1));
498
499 FilterOperations filters;
500 filters.Append(FilterOperation::CreateGrayscaleFilter(0.5f));
501 AddRenderPass(frame.get(),
502 RenderPass::Id(2, 1),
503 gfx::Rect(0, 0, 1, 1),
504 gfx::Rect(0, 0, 1, 1),
505 filters,
506 FilterOperations());
507 SetFrameData(frame.Pass());
508
509 PostSetNeedsCommitToMainThread();
510 }
511
512 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
513 bool expect_context = !delegating_renderer();
514 EXPECT_EQ(expect_context, !!host_impl->offscreen_context_provider());
515 EndTest();
516 }
517 };
518
519 SINGLE_AND_MULTI_THREAD_TEST_F(
520 LayerTreeHostDelegatedTestOffscreenContext_Filters);
521
522 class LayerTreeHostDelegatedTestOffscreenContext_BackgroundFilters
523 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
524 protected:
525 virtual void BeginTest() OVERRIDE {
526 scoped_ptr<DelegatedFrameData> frame =
527 CreateFrameData(gfx::Rect(0, 0, 1, 1),
528 gfx::Rect(0, 0, 1, 1));
529
530 FilterOperations filters;
531 filters.Append(FilterOperation::CreateGrayscaleFilter(0.5f));
532 AddRenderPass(frame.get(),
533 RenderPass::Id(2, 1),
534 gfx::Rect(0, 0, 1, 1),
535 gfx::Rect(0, 0, 1, 1),
536 FilterOperations(),
537 filters);
538 SetFrameData(frame.Pass());
539
540 PostSetNeedsCommitToMainThread();
541 }
542
543 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
544 bool expect_context = !delegating_renderer();
545 EXPECT_EQ(expect_context, !!host_impl->offscreen_context_provider());
546 EndTest();
547 }
548 };
549
550 SINGLE_AND_MULTI_THREAD_TEST_F(
551 LayerTreeHostDelegatedTestOffscreenContext_BackgroundFilters);
552
553 class LayerTreeHostDelegatedTestOffscreenContext_Filters_AddedToTree
554 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
555 protected:
556 virtual void BeginTest() OVERRIDE {
557 scoped_ptr<DelegatedFrameData> frame_no_filters =
558 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
559
560 scoped_ptr<DelegatedFrameData> frame_with_filters =
561 CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
562
563 FilterOperations filters;
564 filters.Append(FilterOperation::CreateGrayscaleFilter(0.5f));
565 AddRenderPass(frame_with_filters.get(),
566 RenderPass::Id(2, 1),
567 gfx::Rect(0, 0, 1, 1),
568 gfx::Rect(0, 0, 1, 1),
569 filters,
570 FilterOperations());
571
572 SetFrameData(frame_no_filters.Pass());
573 delegated_->RemoveFromParent();
574 SetFrameData(frame_with_filters.Pass());
575 layer_tree_host()->root_layer()->AddChild(delegated_);
576
577 PostSetNeedsCommitToMainThread();
578 }
579
580 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
581 bool expect_context = !delegating_renderer();
582 EXPECT_EQ(expect_context, !!host_impl->offscreen_context_provider());
583 EndTest();
584 }
585 };
586
587 SINGLE_AND_MULTI_THREAD_TEST_F(
588 LayerTreeHostDelegatedTestOffscreenContext_Filters_AddedToTree);
589
590 class LayerTreeHostDelegatedTestLayerUsesFrameDamage 470 class LayerTreeHostDelegatedTestLayerUsesFrameDamage
591 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { 471 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer {
592 public: 472 public:
593 LayerTreeHostDelegatedTestLayerUsesFrameDamage() 473 LayerTreeHostDelegatedTestLayerUsesFrameDamage()
594 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(), 474 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(),
595 first_draw_for_source_frame_(true) {} 475 first_draw_for_source_frame_(true) {}
596 476
597 virtual void DidCommit() OVERRIDE { 477 virtual void DidCommit() OVERRIDE {
598 int next_source_frame_number = layer_tree_host()->source_frame_number(); 478 int next_source_frame_number = layer_tree_host()->source_frame_number();
599 switch (next_source_frame_number) { 479 switch (next_source_frame_number) {
(...skipping 1716 matching lines...) Expand 10 before | Expand all | Expand 10 after
2316 } 2196 }
2317 2197
2318 scoped_refptr<DelegatedRendererLayer> delegated_thief_; 2198 scoped_refptr<DelegatedRendererLayer> delegated_thief_;
2319 }; 2199 };
2320 2200
2321 SINGLE_AND_MULTI_THREAD_TEST_F( 2201 SINGLE_AND_MULTI_THREAD_TEST_F(
2322 LayerTreeHostDelegatedTestRemoveAndChangeResources); 2202 LayerTreeHostDelegatedTestRemoveAndChangeResources);
2323 2203
2324 } // namespace 2204 } // namespace
2325 } // namespace cc 2205 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest_context.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698