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

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

Issue 21154002: Add support for converting cc::FilterOperations into an SkImageFilter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 3 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/output/render_surface_filters.cc ('k') | cc/output/software_renderer.cc » ('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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "cc/layers/append_quads_data.h" 6 #include "cc/layers/append_quads_data.h"
7 #include "cc/output/gl_renderer.h" 7 #include "cc/output/gl_renderer.h"
8 #include "cc/quads/draw_quad.h" 8 #include "cc/quads/draw_quad.h"
9 #include "cc/quads/picture_draw_quad.h" 9 #include "cc/quads/picture_draw_quad.h"
10 #include "cc/quads/texture_draw_quad.h" 10 #include "cc/quads/texture_draw_quad.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 SharedQuadState* shared_state, gfx::Rect rect, RenderPass::Id pass_id) { 82 SharedQuadState* shared_state, gfx::Rect rect, RenderPass::Id pass_id) {
83 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); 83 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
84 quad->SetNew(shared_state, 84 quad->SetNew(shared_state,
85 rect, 85 rect,
86 pass_id, 86 pass_id,
87 false, // is_replica 87 false, // is_replica
88 0, // mask_resource_id 88 0, // mask_resource_id
89 rect, // contents_changed_since_last_frame 89 rect, // contents_changed_since_last_frame
90 gfx::RectF(), // mask_uv_rect 90 gfx::RectF(), // mask_uv_rect
91 FilterOperations(), // foreground filters 91 FilterOperations(), // foreground filters
92 skia::RefPtr<SkImageFilter>(), // foreground filter
93 FilterOperations()); // background filters 92 FilterOperations()); // background filters
94 93
95 return quad.PassAs<DrawQuad>(); 94 return quad.PassAs<DrawQuad>();
96 } 95 }
97 96
98 scoped_ptr<TextureDrawQuad> CreateTestTextureDrawQuad( 97 scoped_ptr<TextureDrawQuad> CreateTestTextureDrawQuad(
99 gfx::Rect rect, 98 gfx::Rect rect,
100 SkColor texel_color, 99 SkColor texel_color,
101 SkColor background_color, 100 SkColor background_color,
102 bool premultiplied_alpha, 101 bool premultiplied_alpha,
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 matrix[10] = 0.213f - 0.213f * amount; 615 matrix[10] = 0.213f - 0.213f * amount;
617 matrix[11] = 0.715f - 0.715f * amount; 616 matrix[11] = 0.715f - 0.715f * amount;
618 matrix[12] = 1.f - (matrix[10] + matrix[11]); 617 matrix[12] = 1.f - (matrix[10] + matrix[11]);
619 matrix[13] = matrix[14] = 0; 618 matrix[13] = matrix[14] = 0;
620 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; 619 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0;
621 matrix[18] = 1; 620 matrix[18] = 1;
622 skia::RefPtr<SkColorFilter> colorFilter(skia::AdoptRef( 621 skia::RefPtr<SkColorFilter> colorFilter(skia::AdoptRef(
623 new SkColorMatrixFilter(matrix))); 622 new SkColorMatrixFilter(matrix)));
624 skia::RefPtr<SkImageFilter> filter = 623 skia::RefPtr<SkImageFilter> filter =
625 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL)); 624 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL));
625 FilterOperations filters;
626 filters.Append(FilterOperation::CreateReferenceFilter(filter));
626 627
627 scoped_ptr<RenderPassDrawQuad> render_pass_quad = 628 scoped_ptr<RenderPassDrawQuad> render_pass_quad =
628 RenderPassDrawQuad::Create(); 629 RenderPassDrawQuad::Create();
629 render_pass_quad->SetNew(pass_shared_state.get(), 630 render_pass_quad->SetNew(pass_shared_state.get(),
630 pass_rect, 631 pass_rect,
631 child_pass_id, 632 child_pass_id,
632 false, 633 false,
633 0, 634 0,
634 pass_rect, 635 pass_rect,
635 gfx::RectF(), 636 gfx::RectF(),
636 FilterOperations(), 637 filters,
637 filter,
638 FilterOperations()); 638 FilterOperations());
639 639
640 root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>()); 640 root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>());
641 641
642 RenderPassList pass_list; 642 RenderPassList pass_list;
643 pass_list.push_back(child_pass.Pass()); 643 pass_list.push_back(child_pass.Pass());
644 pass_list.push_back(root_pass.Pass()); 644 pass_list.push_back(root_pass.Pass());
645 645
646 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl 646 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl
647 // renderer so use a fuzzy comparator. 647 // renderer so use a fuzzy comparator.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 matrix[11] = 0.715f - 0.715f * amount; 719 matrix[11] = 0.715f - 0.715f * amount;
720 matrix[12] = 1.f - (matrix[10] + matrix[11]); 720 matrix[12] = 1.f - (matrix[10] + matrix[11]);
721 matrix[13] = 0; 721 matrix[13] = 0;
722 matrix[14] = 1.5f; 722 matrix[14] = 1.5f;
723 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; 723 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0;
724 matrix[18] = 1; 724 matrix[18] = 1;
725 skia::RefPtr<SkColorFilter> colorFilter(skia::AdoptRef( 725 skia::RefPtr<SkColorFilter> colorFilter(skia::AdoptRef(
726 new SkColorMatrixFilter(matrix))); 726 new SkColorMatrixFilter(matrix)));
727 skia::RefPtr<SkImageFilter> filter = 727 skia::RefPtr<SkImageFilter> filter =
728 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL)); 728 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL));
729 FilterOperations filters;
730 filters.Append(FilterOperation::CreateReferenceFilter(filter));
729 731
730 scoped_ptr<RenderPassDrawQuad> render_pass_quad = 732 scoped_ptr<RenderPassDrawQuad> render_pass_quad =
731 RenderPassDrawQuad::Create(); 733 RenderPassDrawQuad::Create();
732 render_pass_quad->SetNew(pass_shared_state.get(), 734 render_pass_quad->SetNew(pass_shared_state.get(),
733 pass_rect, 735 pass_rect,
734 child_pass_id, 736 child_pass_id,
735 false, 737 false,
736 0, 738 0,
737 pass_rect, 739 pass_rect,
738 gfx::RectF(), 740 gfx::RectF(),
739 FilterOperations(), 741 filters,
740 filter,
741 FilterOperations()); 742 FilterOperations());
742 743
743 root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>()); 744 root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>());
744 RenderPassList pass_list; 745 RenderPassList pass_list;
745 746
746 pass_list.push_back(child_pass.Pass()); 747 pass_list.push_back(child_pass.Pass());
747 pass_list.push_back(root_pass.Pass()); 748 pass_list.push_back(root_pass.Pass());
748 749
749 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl 750 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl
750 // renderer so use a fuzzy comparator. 751 // renderer so use a fuzzy comparator.
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 RenderPassDrawQuad::Create(); 925 RenderPassDrawQuad::Create();
925 filter_pass_quad->SetNew( 926 filter_pass_quad->SetNew(
926 shared_state.get(), 927 shared_state.get(),
927 filter_pass_content_rect_, 928 filter_pass_content_rect_,
928 filter_pass_id, 929 filter_pass_id,
929 false, // is_replica 930 false, // is_replica
930 0, // mask_resource_id 931 0, // mask_resource_id
931 filter_pass_content_rect_, // contents_changed_since_last_frame 932 filter_pass_content_rect_, // contents_changed_since_last_frame
932 gfx::RectF(), // mask_uv_rect 933 gfx::RectF(), // mask_uv_rect
933 FilterOperations(), // filters 934 FilterOperations(), // filters
934 skia::RefPtr<SkImageFilter>(), // filter
935 this->background_filters_); 935 this->background_filters_);
936 root_pass->quad_list.push_back(filter_pass_quad.PassAs<DrawQuad>()); 936 root_pass->quad_list.push_back(filter_pass_quad.PassAs<DrawQuad>());
937 root_pass->shared_quad_state_list.push_back(shared_state.Pass()); 937 root_pass->shared_quad_state_list.push_back(shared_state.Pass());
938 } 938 }
939 939
940 const int kColumnWidth = device_viewport_rect.width() / 3; 940 const int kColumnWidth = device_viewport_rect.width() / 3;
941 941
942 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); 942 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20);
943 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { 943 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) {
944 scoped_ptr<SharedQuadState> shared_state = 944 scoped_ptr<SharedQuadState> shared_state =
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
1669 EXPECT_TRUE(this->RunPixelTest( 1669 EXPECT_TRUE(this->RunPixelTest(
1670 &pass_list, 1670 &pass_list,
1671 PixelTest::NoOffscreenContext, 1671 PixelTest::NoOffscreenContext,
1672 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 1672 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
1673 ExactPixelComparator(true))); 1673 ExactPixelComparator(true)));
1674 } 1674 }
1675 #endif // !defined(OS_ANDROID) 1675 #endif // !defined(OS_ANDROID)
1676 1676
1677 } // namespace 1677 } // namespace
1678 } // namespace cc 1678 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/render_surface_filters.cc ('k') | cc/output/software_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698