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

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

Issue 13863015: Add flag for drawing layers to screen with Ganesh (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for review Created 7 years, 7 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
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.h" 5 #include "base/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/resources/platform_color.h" 10 #include "cc/resources/platform_color.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 WebKit::WebFilterOperations(), // foreground filters 90 WebKit::WebFilterOperations(), // foreground filters
91 skia::RefPtr<SkImageFilter>(), // foreground filter 91 skia::RefPtr<SkImageFilter>(), // foreground filter
92 WebKit::WebFilterOperations()); // background filters 92 WebKit::WebFilterOperations()); // background filters
93 93
94 return quad.PassAs<DrawQuad>(); 94 return quad.PassAs<DrawQuad>();
95 } 95 }
96 96
97 typedef ::testing::Types<GLRenderer, SoftwareRenderer> RendererTypes; 97 typedef ::testing::Types<GLRenderer, SoftwareRenderer> RendererTypes;
98 TYPED_TEST_CASE(RendererPixelTest, RendererTypes); 98 TYPED_TEST_CASE(RendererPixelTest, RendererTypes);
99 99
100 typedef ::testing::Types<GLRenderer, GLRendererWithGanesh, SoftwareRenderer>
101 RendererTypesWithGanesh;
102 template <typename RendererType>
103 class RendererPixelTestWithGanesh : public RendererPixelTest<RendererType> {
104 };
105 TYPED_TEST_CASE(RendererPixelTestWithGanesh, RendererTypesWithGanesh);
106
100 // All pixels can be off by one, but any more than that is an error. 107 // All pixels can be off by one, but any more than that is an error.
101 class FuzzyPixelOffByOneComparator : public FuzzyPixelComparator { 108 class FuzzyPixelOffByOneComparator : public FuzzyPixelComparator {
102 public: 109 public:
103 explicit FuzzyPixelOffByOneComparator(bool discard_alpha) 110 explicit FuzzyPixelOffByOneComparator(bool discard_alpha)
104 : FuzzyPixelComparator(discard_alpha, 100.f, 0.f, 1.f, 1, 0) {} 111 : FuzzyPixelComparator(discard_alpha, 100.f, 0.f, 1.f, 1, 0) {}
105 }; 112 };
106 113
107 template <typename RendererType> 114 template <typename RendererType>
108 class FuzzyForSoftwareOnlyPixelComparator : public PixelComparator { 115 class FuzzyForSoftwareOnlyPixelComparator : public PixelComparator {
109 public: 116 public:
110 explicit FuzzyForSoftwareOnlyPixelComparator(bool discard_alpha) 117 explicit FuzzyForSoftwareOnlyPixelComparator(bool discard_alpha)
111 : fuzzy_(discard_alpha), exact_(discard_alpha) {} 118 : fuzzy_(discard_alpha), exact_(discard_alpha) {}
112 119
113 virtual bool Compare(const SkBitmap& actual_bmp, 120 virtual bool Compare(const SkBitmap& actual_bmp,
114 const SkBitmap& expected_bmp) const; 121 const SkBitmap& expected_bmp) const;
115 122
116 private: 123 private:
117 FuzzyPixelOffByOneComparator fuzzy_; 124 FuzzyPixelOffByOneComparator fuzzy_;
118 ExactPixelComparator exact_; 125 ExactPixelComparator exact_;
119 }; 126 };
120 127
121 template<> 128 template<>
122 bool FuzzyForSoftwareOnlyPixelComparator<GLRenderer>::Compare(
123 const SkBitmap& actual_bmp,
124 const SkBitmap& expected_bmp) const {
125 return exact_.Compare(actual_bmp, expected_bmp);
126 }
127
128 template<>
129 bool FuzzyForSoftwareOnlyPixelComparator<SoftwareRenderer>::Compare( 129 bool FuzzyForSoftwareOnlyPixelComparator<SoftwareRenderer>::Compare(
130 const SkBitmap& actual_bmp, 130 const SkBitmap& actual_bmp,
131 const SkBitmap& expected_bmp) const { 131 const SkBitmap& expected_bmp) const {
132 return fuzzy_.Compare(actual_bmp, expected_bmp); 132 return fuzzy_.Compare(actual_bmp, expected_bmp);
133 } 133 }
134 134
135 template<typename RendererType>
136 bool FuzzyForSoftwareOnlyPixelComparator<RendererType>::Compare(
137 const SkBitmap& actual_bmp,
138 const SkBitmap& expected_bmp) const {
139 return exact_.Compare(actual_bmp, expected_bmp);
140 }
141
135 #if !defined(OS_ANDROID) 142 #if !defined(OS_ANDROID)
136 TYPED_TEST(RendererPixelTest, SimpleGreenRect) { 143 TYPED_TEST(RendererPixelTest, SimpleGreenRect) {
137 gfx::Rect rect(this->device_viewport_size_); 144 gfx::Rect rect(this->device_viewport_size_);
138 145
139 RenderPass::Id id(1, 1); 146 RenderPass::Id id(1, 1);
140 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 147 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
141 148
142 scoped_ptr<SharedQuadState> shared_state = 149 scoped_ptr<SharedQuadState> shared_state =
143 CreateTestSharedQuadState(gfx::Transform(), rect); 150 CreateTestSharedQuadState(gfx::Transform(), rect);
144 151
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 pass_list_.push_back(filter_pass.Pass()); 570 pass_list_.push_back(filter_pass.Pass());
564 pass_list_.push_back(root_pass.Pass()); 571 pass_list_.push_back(root_pass.Pass());
565 } 572 }
566 573
567 RenderPassList pass_list_; 574 RenderPassList pass_list_;
568 WebKit::WebFilterOperations background_filters_; 575 WebKit::WebFilterOperations background_filters_;
569 gfx::Transform filter_pass_to_target_transform_; 576 gfx::Transform filter_pass_to_target_transform_;
570 gfx::Rect filter_pass_content_rect_; 577 gfx::Rect filter_pass_content_rect_;
571 }; 578 };
572 579
573 typedef ::testing::Types<GLRenderer, SoftwareRenderer> RendererTypes; 580 typedef ::testing::Types<GLRenderer, SoftwareRenderer>
574 TYPED_TEST_CASE(RendererPixelTestWithBackgroundFilter, RendererTypes); 581 BackgroundFilterRendererTypes;
582 TYPED_TEST_CASE(RendererPixelTestWithBackgroundFilter,
583 BackgroundFilterRendererTypes);
575 584
576 typedef RendererPixelTestWithBackgroundFilter<GLRenderer> 585 typedef RendererPixelTestWithBackgroundFilter<GLRenderer>
577 GLRendererPixelTestWithBackgroundFilter; 586 GLRendererPixelTestWithBackgroundFilter;
578 587
579 // TODO(skaslev): The software renderer does not support filters yet. 588 // TODO(skaslev): The software renderer does not support filters yet.
580 TEST_F(GLRendererPixelTestWithBackgroundFilter, InvertFilter) { 589 TEST_F(GLRendererPixelTestWithBackgroundFilter, InvertFilter) {
581 this->background_filters_.append( 590 this->background_filters_.append(
582 WebKit::WebFilterOperation::createInvertFilter(1.f)); 591 WebKit::WebFilterOperation::createInvertFilter(1.f));
583 592
584 this->filter_pass_content_rect_ = gfx::Rect(this->device_viewport_size_); 593 this->filter_pass_content_rect_ = gfx::Rect(this->device_viewport_size_);
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 731
723 RenderPassList pass_list; 732 RenderPassList pass_list;
724 pass_list.push_back(pass.Pass()); 733 pass_list.push_back(pass.Pass());
725 734
726 EXPECT_TRUE(this->RunPixelTest( 735 EXPECT_TRUE(this->RunPixelTest(
727 &pass_list, 736 &pass_list,
728 base::FilePath(FILE_PATH_LITERAL("force_anti_aliasing_off.png")), 737 base::FilePath(FILE_PATH_LITERAL("force_anti_aliasing_off.png")),
729 ExactPixelComparator(false))); 738 ExactPixelComparator(false)));
730 } 739 }
731 740
732 TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) { 741 TYPED_TEST(RendererPixelTestWithGanesh, PictureDrawQuadIdentityScale) {
733 gfx::Size pile_tile_size(1000, 1000); 742 gfx::Size pile_tile_size(1000, 1000);
734 gfx::Rect viewport(this->device_viewport_size_); 743 gfx::Rect viewport(this->device_viewport_size_);
744 bool use_ganesh = this->UseGanesh();
735 // TODO(enne): the renderer should figure this out on its own. 745 // TODO(enne): the renderer should figure this out on its own.
736 bool contents_swizzled = !PlatformColor::SameComponentOrder(GL_RGBA); 746 bool contents_swizzled = !PlatformColor::SameComponentOrder(GL_RGBA);
737 747
738 RenderPass::Id id(1, 1); 748 RenderPass::Id id(1, 1);
739 gfx::Transform transform_to_root; 749 gfx::Transform transform_to_root;
740 scoped_ptr<RenderPass> pass = 750 scoped_ptr<RenderPass> pass =
741 CreateTestRenderPass(id, viewport, transform_to_root); 751 CreateTestRenderPass(id, viewport, transform_to_root);
742 752
743 // One clipped blue quad in the lower right corner. Outside the clip 753 // One clipped blue quad in the lower right corner. Outside the clip
744 // is red, which should not appear. 754 // is red, which should not appear.
(...skipping 22 matching lines...) Expand all
767 scoped_ptr<PictureDrawQuad> blue_quad = PictureDrawQuad::Create(); 777 scoped_ptr<PictureDrawQuad> blue_quad = PictureDrawQuad::Create();
768 778
769 blue_quad->SetNew(blue_shared_state.get(), 779 blue_quad->SetNew(blue_shared_state.get(),
770 viewport, // Intentionally bigger than clip. 780 viewport, // Intentionally bigger than clip.
771 gfx::Rect(), 781 gfx::Rect(),
772 viewport, 782 viewport,
773 viewport.size(), 783 viewport.size(),
774 contents_swizzled, 784 contents_swizzled,
775 viewport, 785 viewport,
776 1.f, 786 1.f,
787 use_ganesh,
777 blue_pile); 788 blue_pile);
778 pass->quad_list.push_back(blue_quad.PassAs<DrawQuad>()); 789 pass->quad_list.push_back(blue_quad.PassAs<DrawQuad>());
779 790
780 // One viewport-filling green quad. 791 // One viewport-filling green quad.
781 scoped_refptr<FakePicturePileImpl> green_pile = 792 scoped_refptr<FakePicturePileImpl> green_pile =
782 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); 793 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size());
783 SkPaint green_paint; 794 SkPaint green_paint;
784 green_paint.setColor(SK_ColorGREEN); 795 green_paint.setColor(SK_ColorGREEN);
785 green_pile->add_draw_rect_with_paint(viewport, green_paint); 796 green_pile->add_draw_rect_with_paint(viewport, green_paint);
786 green_pile->RerecordPile(); 797 green_pile->RerecordPile();
787 798
788 gfx::Transform green_content_to_target_transform; 799 gfx::Transform green_content_to_target_transform;
789 scoped_ptr<SharedQuadState> green_shared_state = 800 scoped_ptr<SharedQuadState> green_shared_state =
790 CreateTestSharedQuadState(green_content_to_target_transform, viewport); 801 CreateTestSharedQuadState(green_content_to_target_transform, viewport);
791 802
792 scoped_ptr<PictureDrawQuad> green_quad = PictureDrawQuad::Create(); 803 scoped_ptr<PictureDrawQuad> green_quad = PictureDrawQuad::Create();
793 green_quad->SetNew(green_shared_state.get(), 804 green_quad->SetNew(green_shared_state.get(),
794 viewport, 805 viewport,
795 gfx::Rect(), 806 gfx::Rect(),
796 gfx::RectF(0.f, 0.f, 1.f, 1.f), 807 gfx::RectF(0.f, 0.f, 1.f, 1.f),
797 viewport.size(), 808 viewport.size(),
798 contents_swizzled, 809 contents_swizzled,
799 viewport, 810 viewport,
800 1.f, 811 1.f,
812 use_ganesh,
801 green_pile); 813 green_pile);
802 pass->quad_list.push_back(green_quad.PassAs<DrawQuad>()); 814 pass->quad_list.push_back(green_quad.PassAs<DrawQuad>());
803 815
804 RenderPassList pass_list; 816 RenderPassList pass_list;
805 pass_list.push_back(pass.Pass()); 817 pass_list.push_back(pass.Pass());
806 818
807 EXPECT_TRUE(this->RunPixelTest( 819 EXPECT_TRUE(this->RunPixelTest(
808 &pass_list, 820 &pass_list,
809 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), 821 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")),
810 ExactPixelComparator(true))); 822 ExactPixelComparator(true)));
811 } 823 }
812 824
813 TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) { 825 TYPED_TEST(RendererPixelTestWithGanesh, PictureDrawQuadNonIdentityScale) {
814 gfx::Size pile_tile_size(1000, 1000); 826 gfx::Size pile_tile_size(1000, 1000);
815 gfx::Rect viewport(this->device_viewport_size_); 827 gfx::Rect viewport(this->device_viewport_size_);
828 bool use_ganesh = this->UseGanesh();
816 // TODO(enne): the renderer should figure this out on its own. 829 // TODO(enne): the renderer should figure this out on its own.
817 bool contents_swizzled = !PlatformColor::SameComponentOrder(GL_RGBA); 830 bool contents_swizzled = !PlatformColor::SameComponentOrder(GL_RGBA);
818 831
819 RenderPass::Id id(1, 1); 832 RenderPass::Id id(1, 1);
820 gfx::Transform transform_to_root; 833 gfx::Transform transform_to_root;
821 scoped_ptr<RenderPass> pass = 834 scoped_ptr<RenderPass> pass =
822 CreateTestRenderPass(id, viewport, transform_to_root); 835 CreateTestRenderPass(id, viewport, transform_to_root);
823 836
824 // As scaling up the blue checkerboards will cause sampling on the GPU, 837 // As scaling up the blue checkerboards will cause sampling on the GPU,
825 // a few extra "cleanup rects" need to be added to clobber the blending 838 // a few extra "cleanup rects" need to be added to clobber the blending
(...skipping 18 matching lines...) Expand all
844 857
845 scoped_ptr<PictureDrawQuad> green_quad1 = PictureDrawQuad::Create(); 858 scoped_ptr<PictureDrawQuad> green_quad1 = PictureDrawQuad::Create();
846 green_quad1->SetNew(top_right_green_shared_quad_state.get(), 859 green_quad1->SetNew(top_right_green_shared_quad_state.get(),
847 green_rect1, 860 green_rect1,
848 gfx::Rect(), 861 gfx::Rect(),
849 gfx::RectF(green_rect1.size()), 862 gfx::RectF(green_rect1.size()),
850 green_rect1.size(), 863 green_rect1.size(),
851 contents_swizzled, 864 contents_swizzled,
852 green_rect1, 865 green_rect1,
853 1.f, 866 1.f,
867 use_ganesh,
854 green_pile); 868 green_pile);
855 pass->quad_list.push_back(green_quad1.PassAs<DrawQuad>()); 869 pass->quad_list.push_back(green_quad1.PassAs<DrawQuad>());
856 870
857 scoped_ptr<PictureDrawQuad> green_quad2 = PictureDrawQuad::Create(); 871 scoped_ptr<PictureDrawQuad> green_quad2 = PictureDrawQuad::Create();
858 green_quad2->SetNew(top_right_green_shared_quad_state.get(), 872 green_quad2->SetNew(top_right_green_shared_quad_state.get(),
859 green_rect2, 873 green_rect2,
860 gfx::Rect(), 874 gfx::Rect(),
861 gfx::RectF(green_rect2.size()), 875 gfx::RectF(green_rect2.size()),
862 green_rect2.size(), 876 green_rect2.size(),
863 contents_swizzled, 877 contents_swizzled,
864 green_rect2, 878 green_rect2,
865 1.f, 879 1.f,
880 use_ganesh,
866 green_pile); 881 green_pile);
867 pass->quad_list.push_back(green_quad2.PassAs<DrawQuad>()); 882 pass->quad_list.push_back(green_quad2.PassAs<DrawQuad>());
868 883
869 // Add a green clipped checkerboard in the bottom right to help test 884 // Add a green clipped checkerboard in the bottom right to help test
870 // interleaving picture quad content and solid color content. 885 // interleaving picture quad content and solid color content.
871 gfx::Rect bottom_right_rect( 886 gfx::Rect bottom_right_rect(
872 gfx::Point(viewport.width() / 2, viewport.height() / 2), 887 gfx::Point(viewport.width() / 2, viewport.height() / 2),
873 gfx::Size(viewport.width() / 2, viewport.height() / 2)); 888 gfx::Size(viewport.width() / 2, viewport.height() / 2));
874 scoped_ptr<SharedQuadState> bottom_right_green_shared_state = 889 scoped_ptr<SharedQuadState> bottom_right_green_shared_state =
875 CreateTestSharedQuadStateClipped( 890 CreateTestSharedQuadStateClipped(
(...skipping 16 matching lines...) Expand all
892 union_layer_rect.Union(blue_layer_rect2); 907 union_layer_rect.Union(blue_layer_rect2);
893 908
894 // Because scaling up will cause sampling outside the rects, add one extra 909 // Because scaling up will cause sampling outside the rects, add one extra
895 // pixel of buffer at the final content scale. 910 // pixel of buffer at the final content scale.
896 float inset = -1.f / contents_scale; 911 float inset = -1.f / contents_scale;
897 blue_layer_rect1.Inset(inset, inset, inset, inset); 912 blue_layer_rect1.Inset(inset, inset, inset, inset);
898 blue_layer_rect2.Inset(inset, inset, inset, inset); 913 blue_layer_rect2.Inset(inset, inset, inset, inset);
899 914
900 scoped_refptr<FakePicturePileImpl> pile = 915 scoped_refptr<FakePicturePileImpl> pile =
901 FakePicturePileImpl::CreateFilledPile(pile_tile_size, layer_rect.size()); 916 FakePicturePileImpl::CreateFilledPile(pile_tile_size, layer_rect.size());
902 pile->add_draw_rect_with_paint(layer_rect, red_paint); 917
903 SkPaint transparent_paint; 918 Region outside(layer_rect);
enne (OOO) 2013/05/13 19:33:10 This change is because drawing directly with Ganes
904 transparent_paint.setXfermodeMode(SkXfermode::kClear_Mode); 919 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect));
905 pile->add_draw_rect_with_paint(union_layer_rect, transparent_paint); 920 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) {
921 pile->add_draw_rect_with_paint(iter.rect(), red_paint);
922 }
923
906 SkPaint blue_paint; 924 SkPaint blue_paint;
907 blue_paint.setColor(SK_ColorBLUE); 925 blue_paint.setColor(SK_ColorBLUE);
908 pile->add_draw_rect_with_paint(blue_layer_rect1, blue_paint); 926 pile->add_draw_rect_with_paint(blue_layer_rect1, blue_paint);
909 pile->add_draw_rect_with_paint(blue_layer_rect2, blue_paint); 927 pile->add_draw_rect_with_paint(blue_layer_rect2, blue_paint);
910 pile->RerecordPile(); 928 pile->RerecordPile();
911 929
912 gfx::Rect content_rect( 930 gfx::Rect content_rect(
913 gfx::ToEnclosingRect(gfx::ScaleRect(layer_rect, contents_scale))); 931 gfx::ToEnclosingRect(gfx::ScaleRect(layer_rect, contents_scale)));
914 gfx::Rect content_union_rect( 932 gfx::Rect content_union_rect(
915 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); 933 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale)));
916 934
917 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, 935 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels,
918 // so scale an additional 10x to make them 100x100. 936 // so scale an additional 10x to make them 100x100.
919 gfx::Transform content_to_target_transform; 937 gfx::Transform content_to_target_transform;
920 content_to_target_transform.Scale(10.0, 10.0); 938 content_to_target_transform.Scale(10.0, 10.0);
921 gfx::Rect quad_content_rect(gfx::Size(20, 20)); 939 gfx::Rect quad_content_rect(gfx::Size(20, 20));
922 scoped_ptr<SharedQuadState> blue_shared_state = 940 scoped_ptr<SharedQuadState> blue_shared_state =
923 CreateTestSharedQuadState(content_to_target_transform, quad_content_rect); 941 CreateTestSharedQuadState(content_to_target_transform, quad_content_rect);
924 942
925 scoped_ptr<PictureDrawQuad> blue_quad = PictureDrawQuad::Create(); 943 scoped_ptr<PictureDrawQuad> blue_quad = PictureDrawQuad::Create();
926 blue_quad->SetNew(blue_shared_state.get(), 944 blue_quad->SetNew(blue_shared_state.get(),
927 quad_content_rect, 945 quad_content_rect,
928 gfx::Rect(), 946 gfx::Rect(),
929 quad_content_rect, 947 quad_content_rect,
930 content_union_rect.size(), 948 content_union_rect.size(),
931 contents_swizzled, 949 contents_swizzled,
932 content_union_rect, 950 content_union_rect,
933 contents_scale, 951 contents_scale,
952 use_ganesh,
934 pile); 953 pile);
935 pass->quad_list.push_back(blue_quad.PassAs<DrawQuad>()); 954 pass->quad_list.push_back(blue_quad.PassAs<DrawQuad>());
936 955
937 // Fill left half of viewport with green. 956 // Fill left half of viewport with green.
938 gfx::Transform half_green_content_to_target_transform; 957 gfx::Transform half_green_content_to_target_transform;
939 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); 958 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height()));
940 scoped_ptr<SharedQuadState> half_green_shared_state = 959 scoped_ptr<SharedQuadState> half_green_shared_state =
941 CreateTestSharedQuadState(half_green_content_to_target_transform, 960 CreateTestSharedQuadState(half_green_content_to_target_transform,
942 half_green_rect); 961 half_green_rect);
943 scoped_ptr<SolidColorDrawQuad> half_color_quad = SolidColorDrawQuad::Create(); 962 scoped_ptr<SolidColorDrawQuad> half_color_quad = SolidColorDrawQuad::Create();
944 half_color_quad->SetNew( 963 half_color_quad->SetNew(
945 half_green_shared_state.get(), half_green_rect, SK_ColorGREEN, false); 964 half_green_shared_state.get(), half_green_rect, SK_ColorGREEN, false);
946 pass->quad_list.push_back(half_color_quad.PassAs<DrawQuad>()); 965 pass->quad_list.push_back(half_color_quad.PassAs<DrawQuad>());
947 966
948 RenderPassList pass_list; 967 RenderPassList pass_list;
949 pass_list.push_back(pass.Pass()); 968 pass_list.push_back(pass.Pass());
950 969
951 EXPECT_TRUE(this->RunPixelTest( 970 EXPECT_TRUE(this->RunPixelTest(
952 &pass_list, 971 &pass_list,
953 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 972 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
954 ExactPixelComparator(true))); 973 ExactPixelComparator(true)));
955 } 974 }
956 #endif // !defined(OS_ANDROID) 975 #endif // !defined(OS_ANDROID)
957 976
958 } // namespace 977 } // namespace
959 } // namespace cc 978 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698