OLD | NEW |
---|---|
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/output/gl_renderer.h" | 6 #include "cc/output/gl_renderer.h" |
7 #include "cc/quads/draw_quad.h" | 7 #include "cc/quads/draw_quad.h" |
8 #include "cc/quads/picture_draw_quad.h" | 8 #include "cc/quads/picture_draw_quad.h" |
9 #include "cc/quads/texture_draw_quad.h" | 9 #include "cc/quads/texture_draw_quad.h" |
10 #include "cc/resources/video_resource_updater.h" | 10 #include "cc/resources/video_resource_updater.h" |
11 #include "cc/test/fake_picture_pile_impl.h" | 11 #include "cc/test/fake_display_list_raster_source.h" |
12 #include "cc/test/fake_display_list_recording_source.h" | |
12 #include "cc/test/pixel_test.h" | 13 #include "cc/test/pixel_test.h" |
13 #include "gpu/command_buffer/client/gles2_interface.h" | 14 #include "gpu/command_buffer/client/gles2_interface.h" |
14 #include "media/base/video_frame.h" | 15 #include "media/base/video_frame.h" |
15 #include "third_party/skia/include/core/SkColorPriv.h" | 16 #include "third_party/skia/include/core/SkColorPriv.h" |
16 #include "third_party/skia/include/core/SkImageFilter.h" | 17 #include "third_party/skia/include/core/SkImageFilter.h" |
17 #include "third_party/skia/include/core/SkMatrix.h" | 18 #include "third_party/skia/include/core/SkMatrix.h" |
18 #include "third_party/skia/include/core/SkSurface.h" | 19 #include "third_party/skia/include/core/SkSurface.h" |
19 #include "third_party/skia/include/effects/SkColorFilterImageFilter.h" | 20 #include "third_party/skia/include/effects/SkColorFilterImageFilter.h" |
20 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" | 21 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" |
21 #include "ui/gfx/geometry/rect_conversions.h" | 22 #include "ui/gfx/geometry/rect_conversions.h" |
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
756 this->quad_rect_.width() / 2, | 757 this->quad_rect_.width() / 2, |
757 this->quad_rect_.height() / 2); | 758 this->quad_rect_.height() / 2); |
758 | 759 |
759 SkPaint black_paint; | 760 SkPaint black_paint; |
760 black_paint.setColor(SK_ColorBLACK); | 761 black_paint.setColor(SK_ColorBLACK); |
761 SkPaint blue_paint; | 762 SkPaint blue_paint; |
762 blue_paint.setColor(SK_ColorBLUE); | 763 blue_paint.setColor(SK_ColorBLUE); |
763 SkPaint green_paint; | 764 SkPaint green_paint; |
764 green_paint.setColor(SK_ColorGREEN); | 765 green_paint.setColor(SK_ColorGREEN); |
765 | 766 |
766 scoped_ptr<FakePicturePile> blue_recording = | 767 scoped_ptr<FakeDisplayListRecordingSource> blue_recording = |
767 FakePicturePile::CreateFilledPile(gfx::Size(1000, 1000), | 768 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
768 this->quad_rect_.size()); | 769 this->quad_rect_.size()); |
769 blue_recording->add_draw_rect_with_paint(outer_rect, black_paint); | 770 blue_recording->add_draw_rect_with_paint(outer_rect, black_paint); |
770 blue_recording->add_draw_rect_with_paint(inner_rect, blue_paint); | 771 blue_recording->add_draw_rect_with_paint(inner_rect, blue_paint); |
771 blue_recording->Rerecord(); | 772 blue_recording->Rerecord(); |
772 scoped_refptr<FakePicturePileImpl> blue_pile = | 773 scoped_refptr<FakeDisplayListRasterSource> blue_raster_source = |
773 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); | 774 FakeDisplayListRasterSource::CreateFromRecordingSource( |
775 blue_recording.get(), false); | |
774 | 776 |
775 PictureDrawQuad* blue_quad = | 777 PictureDrawQuad* blue_quad = |
776 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); | 778 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); |
777 | 779 |
778 blue_quad->SetNew(this->front_quad_state_, this->quad_rect_, gfx::Rect(), | 780 blue_quad->SetNew(this->front_quad_state_, this->quad_rect_, gfx::Rect(), |
779 this->quad_rect_, gfx::RectF(this->quad_rect_), | 781 this->quad_rect_, gfx::RectF(this->quad_rect_), |
780 this->quad_rect_.size(), false, RGBA_8888, this->quad_rect_, | 782 this->quad_rect_.size(), false, RGBA_8888, this->quad_rect_, |
781 1.f, blue_pile); | 783 1.f, blue_raster_source); |
782 | 784 |
783 scoped_ptr<FakePicturePile> green_recording = | 785 scoped_ptr<FakeDisplayListRecordingSource> green_recording = |
784 FakePicturePile::CreateFilledPile(this->quad_rect_.size(), | 786 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
785 this->quad_rect_.size()); | 787 this->quad_rect_.size()); |
786 green_recording->add_draw_rect_with_paint(outer_rect, green_paint); | 788 green_recording->add_draw_rect_with_paint(outer_rect, green_paint); |
787 green_recording->add_draw_rect_with_paint(inner_rect, black_paint); | 789 green_recording->add_draw_rect_with_paint(inner_rect, black_paint); |
788 green_recording->Rerecord(); | 790 green_recording->Rerecord(); |
789 scoped_refptr<FakePicturePileImpl> green_pile = | 791 scoped_refptr<FakeDisplayListRasterSource> green_raster_source = |
790 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); | 792 FakeDisplayListRasterSource::CreateFromRecordingSource( |
793 green_recording.get(), false); | |
791 | 794 |
792 PictureDrawQuad* green_quad = | 795 PictureDrawQuad* green_quad = |
793 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); | 796 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); |
794 green_quad->SetNew(this->back_quad_state_, this->quad_rect_, gfx::Rect(), | 797 green_quad->SetNew(this->back_quad_state_, this->quad_rect_, gfx::Rect(), |
795 this->quad_rect_, gfx::RectF(this->quad_rect_), | 798 this->quad_rect_, gfx::RectF(this->quad_rect_), |
796 this->quad_rect_.size(), false, RGBA_8888, | 799 this->quad_rect_.size(), false, RGBA_8888, |
797 this->quad_rect_, 1.f, green_pile); | 800 this->quad_rect_, 1.f, green_raster_source); |
798 SCOPED_TRACE("IntersectingPictureQuadsPass"); | 801 SCOPED_TRACE("IntersectingPictureQuadsPass"); |
799 this->template AppendBackgroundAndRunTest<PictureDrawQuad>( | 802 this->template AppendBackgroundAndRunTest<PictureDrawQuad>( |
800 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)); | 803 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)); |
801 } | 804 } |
802 | 805 |
803 TYPED_TEST(IntersectingQuadPixelTest, RenderPassQuads) { | 806 TYPED_TEST(IntersectingQuadPixelTest, RenderPassQuads) { |
804 this->SetupQuadStateAndRenderPass(); | 807 this->SetupQuadStateAndRenderPass(); |
805 RenderPassId child_pass_id1(2, 2); | 808 RenderPassId child_pass_id1(2, 2); |
806 RenderPassId child_pass_id2(2, 3); | 809 RenderPassId child_pass_id2(2, 3); |
807 scoped_ptr<RenderPass> child_pass1 = | 810 scoped_ptr<RenderPass> child_pass1 = |
(...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2164 RenderPassList pass_list; | 2167 RenderPassList pass_list; |
2165 pass_list.push_back(pass.Pass()); | 2168 pass_list.push_back(pass.Pass()); |
2166 | 2169 |
2167 EXPECT_TRUE(this->RunPixelTest( | 2170 EXPECT_TRUE(this->RunPixelTest( |
2168 &pass_list, | 2171 &pass_list, |
2169 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")), | 2172 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")), |
2170 FuzzyPixelOffByOneComparator(true))); | 2173 FuzzyPixelOffByOneComparator(true))); |
2171 } | 2174 } |
2172 | 2175 |
2173 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) { | 2176 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) { |
2174 gfx::Size pile_tile_size(1000, 1000); | |
2175 gfx::Rect viewport(this->device_viewport_size_); | 2177 gfx::Rect viewport(this->device_viewport_size_); |
2176 // TODO(enne): the renderer should figure this out on its own. | 2178 // TODO(enne): the renderer should figure this out on its own. |
2177 ResourceFormat texture_format = RGBA_8888; | 2179 ResourceFormat texture_format = RGBA_8888; |
2178 bool nearest_neighbor = false; | 2180 bool nearest_neighbor = false; |
2179 | 2181 |
2180 RenderPassId id(1, 1); | 2182 RenderPassId id(1, 1); |
2181 gfx::Transform transform_to_root; | 2183 gfx::Transform transform_to_root; |
2182 scoped_ptr<RenderPass> pass = | 2184 scoped_ptr<RenderPass> pass = |
2183 CreateTestRenderPass(id, viewport, transform_to_root); | 2185 CreateTestRenderPass(id, viewport, transform_to_root); |
2184 | 2186 |
2185 // One clipped blue quad in the lower right corner. Outside the clip | 2187 // One clipped blue quad in the lower right corner. Outside the clip |
2186 // is red, which should not appear. | 2188 // is red, which should not appear. |
2187 gfx::Rect blue_rect(gfx::Size(100, 100)); | 2189 gfx::Rect blue_rect(gfx::Size(100, 100)); |
2188 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); | 2190 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); |
2189 | 2191 |
2190 scoped_ptr<FakePicturePile> blue_recording = | 2192 scoped_ptr<FakeDisplayListRecordingSource> blue_recording = |
2191 FakePicturePile::CreateFilledPile(pile_tile_size, blue_rect.size()); | 2193 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2194 blue_rect.size()); | |
2192 SkPaint red_paint; | 2195 SkPaint red_paint; |
2193 red_paint.setColor(SK_ColorRED); | 2196 red_paint.setColor(SK_ColorRED); |
2194 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); | 2197 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); |
2195 SkPaint blue_paint; | 2198 SkPaint blue_paint; |
2196 blue_paint.setColor(SK_ColorBLUE); | 2199 blue_paint.setColor(SK_ColorBLUE); |
2197 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); | 2200 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); |
2198 blue_recording->Rerecord(); | 2201 blue_recording->Rerecord(); |
2199 | 2202 |
2200 scoped_refptr<FakePicturePileImpl> blue_pile = | 2203 scoped_refptr<FakeDisplayListRasterSource> blue_raster_source = |
2201 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); | 2204 FakeDisplayListRasterSource::CreateFromRecordingSource( |
2205 blue_recording.get(), false); | |
2202 | 2206 |
2203 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); | 2207 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); |
2204 gfx::Transform blue_quad_to_target_transform; | 2208 gfx::Transform blue_quad_to_target_transform; |
2205 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); | 2209 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); |
2206 gfx::Rect blue_target_clip_rect = MathUtil::MapEnclosingClippedRect( | 2210 gfx::Rect blue_target_clip_rect = MathUtil::MapEnclosingClippedRect( |
2207 blue_quad_to_target_transform, blue_clip_rect); | 2211 blue_quad_to_target_transform, blue_clip_rect); |
2208 SharedQuadState* blue_shared_state = | 2212 SharedQuadState* blue_shared_state = |
2209 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, | 2213 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, |
2210 blue_target_clip_rect, pass.get()); | 2214 blue_target_clip_rect, pass.get()); |
2211 | 2215 |
2212 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2216 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2213 | 2217 |
2214 blue_quad->SetNew(blue_shared_state, | 2218 blue_quad->SetNew(blue_shared_state, |
2215 viewport, // Intentionally bigger than clip. | 2219 viewport, // Intentionally bigger than clip. |
2216 gfx::Rect(), viewport, gfx::RectF(viewport), | 2220 gfx::Rect(), viewport, gfx::RectF(viewport), |
2217 viewport.size(), nearest_neighbor, texture_format, viewport, | 2221 viewport.size(), nearest_neighbor, texture_format, viewport, |
2218 1.f, blue_pile.get()); | 2222 1.f, blue_raster_source.get()); |
danakj
2015/09/22 21:52:15
nit: no get()?
vmpstr
2015/09/22 22:57:49
Changed to Pass.
| |
2219 | 2223 |
2220 // One viewport-filling green quad. | 2224 // One viewport-filling green quad. |
2221 scoped_ptr<FakePicturePile> green_recording = | 2225 scoped_ptr<FakeDisplayListRecordingSource> green_recording = |
2222 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2226 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2227 viewport.size()); | |
2223 SkPaint green_paint; | 2228 SkPaint green_paint; |
2224 green_paint.setColor(SK_ColorGREEN); | 2229 green_paint.setColor(SK_ColorGREEN); |
2225 green_recording->add_draw_rect_with_paint(viewport, green_paint); | 2230 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
2226 green_recording->Rerecord(); | 2231 green_recording->Rerecord(); |
2227 scoped_refptr<FakePicturePileImpl> green_pile = | 2232 scoped_refptr<FakeDisplayListRasterSource> green_raster_source = |
2228 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); | 2233 FakeDisplayListRasterSource::CreateFromRecordingSource( |
2234 green_recording.get(), false); | |
2229 | 2235 |
2230 gfx::Transform green_quad_to_target_transform; | 2236 gfx::Transform green_quad_to_target_transform; |
2231 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 2237 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
2232 green_quad_to_target_transform, viewport, pass.get()); | 2238 green_quad_to_target_transform, viewport, pass.get()); |
2233 | 2239 |
2234 PictureDrawQuad* green_quad = | 2240 PictureDrawQuad* green_quad = |
2235 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2241 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2236 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 2242 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
2237 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), | 2243 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), |
2238 nearest_neighbor, texture_format, viewport, 1.f, | 2244 nearest_neighbor, texture_format, viewport, 1.f, |
2239 green_pile.get()); | 2245 green_raster_source.get()); |
danakj
2015/09/22 21:52:14
dittos
vmpstr
2015/09/22 22:57:49
Changed to Pass.
| |
2240 | 2246 |
2241 RenderPassList pass_list; | 2247 RenderPassList pass_list; |
2242 pass_list.push_back(pass.Pass()); | 2248 pass_list.push_back(pass.Pass()); |
2243 | 2249 |
2244 EXPECT_TRUE(this->RunPixelTest( | 2250 EXPECT_TRUE(this->RunPixelTest( |
2245 &pass_list, | 2251 &pass_list, |
2246 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), | 2252 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), |
2247 ExactPixelComparator(true))); | 2253 ExactPixelComparator(true))); |
2248 } | 2254 } |
2249 | 2255 |
2250 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity. | 2256 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity. |
2251 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) { | 2257 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) { |
2252 gfx::Size pile_tile_size(1000, 1000); | |
2253 gfx::Rect viewport(this->device_viewport_size_); | 2258 gfx::Rect viewport(this->device_viewport_size_); |
2254 ResourceFormat texture_format = RGBA_8888; | 2259 ResourceFormat texture_format = RGBA_8888; |
2255 bool nearest_neighbor = false; | 2260 bool nearest_neighbor = false; |
2256 | 2261 |
2257 RenderPassId id(1, 1); | 2262 RenderPassId id(1, 1); |
2258 gfx::Transform transform_to_root; | 2263 gfx::Transform transform_to_root; |
2259 scoped_ptr<RenderPass> pass = | 2264 scoped_ptr<RenderPass> pass = |
2260 CreateTestRenderPass(id, viewport, transform_to_root); | 2265 CreateTestRenderPass(id, viewport, transform_to_root); |
2261 | 2266 |
2262 // One viewport-filling 0.5-opacity green quad. | 2267 // One viewport-filling 0.5-opacity green quad. |
2263 scoped_ptr<FakePicturePile> green_recording = | 2268 scoped_ptr<FakeDisplayListRecordingSource> green_recording = |
2264 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2269 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2270 viewport.size()); | |
2265 SkPaint green_paint; | 2271 SkPaint green_paint; |
2266 green_paint.setColor(SK_ColorGREEN); | 2272 green_paint.setColor(SK_ColorGREEN); |
2267 green_recording->add_draw_rect_with_paint(viewport, green_paint); | 2273 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
2268 green_recording->Rerecord(); | 2274 green_recording->Rerecord(); |
2269 scoped_refptr<FakePicturePileImpl> green_pile = | 2275 scoped_refptr<FakeDisplayListRasterSource> green_raster_source = |
2270 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); | 2276 FakeDisplayListRasterSource::CreateFromRecordingSource( |
2277 green_recording.get(), false); | |
2271 | 2278 |
2272 gfx::Transform green_quad_to_target_transform; | 2279 gfx::Transform green_quad_to_target_transform; |
2273 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 2280 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
2274 green_quad_to_target_transform, viewport, pass.get()); | 2281 green_quad_to_target_transform, viewport, pass.get()); |
2275 green_shared_state->opacity = 0.5f; | 2282 green_shared_state->opacity = 0.5f; |
2276 | 2283 |
2277 PictureDrawQuad* green_quad = | 2284 PictureDrawQuad* green_quad = |
2278 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2285 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2279 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 2286 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
2280 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 2287 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
2281 texture_format, viewport, 1.f, green_pile.get()); | 2288 texture_format, viewport, 1.f, green_raster_source.get()); |
2282 | 2289 |
2283 // One viewport-filling white quad. | 2290 // One viewport-filling white quad. |
2284 scoped_ptr<FakePicturePile> white_recording = | 2291 scoped_ptr<FakeDisplayListRecordingSource> white_recording = |
2285 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2292 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2293 viewport.size()); | |
2286 SkPaint white_paint; | 2294 SkPaint white_paint; |
2287 white_paint.setColor(SK_ColorWHITE); | 2295 white_paint.setColor(SK_ColorWHITE); |
2288 white_recording->add_draw_rect_with_paint(viewport, white_paint); | 2296 white_recording->add_draw_rect_with_paint(viewport, white_paint); |
2289 white_recording->Rerecord(); | 2297 white_recording->Rerecord(); |
2290 scoped_refptr<FakePicturePileImpl> white_pile = | 2298 scoped_refptr<FakeDisplayListRasterSource> white_raster_source = |
2291 FakePicturePileImpl::CreateFromPile(white_recording.get(), nullptr); | 2299 FakeDisplayListRasterSource::CreateFromRecordingSource( |
2300 white_recording.get(), false); | |
2292 | 2301 |
2293 gfx::Transform white_quad_to_target_transform; | 2302 gfx::Transform white_quad_to_target_transform; |
2294 SharedQuadState* white_shared_state = CreateTestSharedQuadState( | 2303 SharedQuadState* white_shared_state = CreateTestSharedQuadState( |
2295 white_quad_to_target_transform, viewport, pass.get()); | 2304 white_quad_to_target_transform, viewport, pass.get()); |
2296 | 2305 |
2297 PictureDrawQuad* white_quad = | 2306 PictureDrawQuad* white_quad = |
2298 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2307 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2299 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, | 2308 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, |
2300 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 2309 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
2301 texture_format, viewport, 1.f, white_pile.get()); | 2310 texture_format, viewport, 1.f, white_raster_source.get()); |
danakj
2015/09/22 21:52:15
dittos
vmpstr
2015/09/22 22:57:49
Changed to Pass.
| |
2302 | 2311 |
2303 RenderPassList pass_list; | 2312 RenderPassList pass_list; |
2304 pass_list.push_back(pass.Pass()); | 2313 pass_list.push_back(pass.Pass()); |
2305 | 2314 |
2306 EXPECT_TRUE(this->RunPixelTest( | 2315 EXPECT_TRUE(this->RunPixelTest( |
2307 &pass_list, | 2316 &pass_list, |
2308 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), | 2317 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), |
2309 FuzzyPixelOffByOneComparator(true))); | 2318 FuzzyPixelOffByOneComparator(true))); |
2310 } | 2319 } |
2311 | 2320 |
(...skipping 12 matching lines...) Expand all Loading... | |
2324 } | 2333 } |
2325 | 2334 |
2326 // If we disable image filtering, then a 2x2 bitmap should appear as four | 2335 // If we disable image filtering, then a 2x2 bitmap should appear as four |
2327 // huge sharp squares. | 2336 // huge sharp squares. |
2328 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadDisableImageFiltering) { | 2337 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadDisableImageFiltering) { |
2329 // We only care about this in software mode since bilinear filtering is | 2338 // We only care about this in software mode since bilinear filtering is |
2330 // cheap in hardware. | 2339 // cheap in hardware. |
2331 if (!IsSoftwareRenderer<TypeParam>()) | 2340 if (!IsSoftwareRenderer<TypeParam>()) |
2332 return; | 2341 return; |
2333 | 2342 |
2334 gfx::Size pile_tile_size(1000, 1000); | |
2335 gfx::Rect viewport(this->device_viewport_size_); | 2343 gfx::Rect viewport(this->device_viewport_size_); |
2336 ResourceFormat texture_format = RGBA_8888; | 2344 ResourceFormat texture_format = RGBA_8888; |
2337 bool nearest_neighbor = false; | 2345 bool nearest_neighbor = false; |
2338 | 2346 |
2339 RenderPassId id(1, 1); | 2347 RenderPassId id(1, 1); |
2340 gfx::Transform transform_to_root; | 2348 gfx::Transform transform_to_root; |
2341 scoped_ptr<RenderPass> pass = | 2349 scoped_ptr<RenderPass> pass = |
2342 CreateTestRenderPass(id, viewport, transform_to_root); | 2350 CreateTestRenderPass(id, viewport, transform_to_root); |
2343 | 2351 |
2344 skia::RefPtr<SkSurface> surface = | 2352 skia::RefPtr<SkSurface> surface = |
2345 skia::AdoptRef(SkSurface::NewRasterN32Premul(2, 2)); | 2353 skia::AdoptRef(SkSurface::NewRasterN32Premul(2, 2)); |
2346 ASSERT_NE(surface, nullptr); | 2354 ASSERT_NE(surface, nullptr); |
2347 SkCanvas* canvas = surface->getCanvas(); | 2355 SkCanvas* canvas = surface->getCanvas(); |
2348 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2356 canvas->drawPoint(0, 0, SK_ColorGREEN); |
2349 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2357 canvas->drawPoint(0, 1, SK_ColorBLUE); |
2350 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2358 canvas->drawPoint(1, 0, SK_ColorBLUE); |
2351 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2359 canvas->drawPoint(1, 1, SK_ColorGREEN); |
2352 skia::RefPtr<SkImage> image = skia::AdoptRef(surface->newImageSnapshot()); | 2360 skia::RefPtr<SkImage> image = skia::AdoptRef(surface->newImageSnapshot()); |
2353 | 2361 |
2354 scoped_ptr<FakePicturePile> recording = | 2362 scoped_ptr<FakeDisplayListRecordingSource> recording = |
2355 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2363 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2364 viewport.size()); | |
2356 SkPaint paint; | 2365 SkPaint paint; |
2357 paint.setFilterQuality(kLow_SkFilterQuality); | 2366 paint.setFilterQuality(kLow_SkFilterQuality); |
2358 recording->add_draw_image_with_paint(image.get(), gfx::Point(), paint); | 2367 recording->add_draw_image_with_paint(image.get(), gfx::Point(), paint); |
2359 recording->Rerecord(); | 2368 recording->Rerecord(); |
2360 scoped_refptr<FakePicturePileImpl> pile = | 2369 scoped_refptr<FakeDisplayListRasterSource> raster_source = |
2361 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); | 2370 FakeDisplayListRasterSource::CreateFromRecordingSource(recording.get(), |
2371 false); | |
2362 | 2372 |
2363 gfx::Transform quad_to_target_transform; | 2373 gfx::Transform quad_to_target_transform; |
2364 SharedQuadState* shared_state = | 2374 SharedQuadState* shared_state = |
2365 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2375 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
2366 | 2376 |
2367 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2377 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2368 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 2378 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
2369 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, | 2379 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, |
2370 texture_format, viewport, 1.f, pile.get()); | 2380 texture_format, viewport, 1.f, raster_source.get()); |
danakj
2015/09/22 21:52:15
more dittos..
vmpstr
2015/09/22 22:57:49
Changed to Pass.
| |
2371 | 2381 |
2372 RenderPassList pass_list; | 2382 RenderPassList pass_list; |
2373 pass_list.push_back(pass.Pass()); | 2383 pass_list.push_back(pass.Pass()); |
2374 | 2384 |
2375 this->disable_picture_quad_image_filtering_ = true; | 2385 this->disable_picture_quad_image_filtering_ = true; |
2376 | 2386 |
2377 EXPECT_TRUE(this->RunPixelTest( | 2387 EXPECT_TRUE(this->RunPixelTest( |
2378 &pass_list, | 2388 &pass_list, |
2379 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), | 2389 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), |
2380 ExactPixelComparator(true))); | 2390 ExactPixelComparator(true))); |
2381 } | 2391 } |
2382 | 2392 |
2383 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad. | 2393 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad. |
2384 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNearestNeighbor) { | 2394 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNearestNeighbor) { |
2385 gfx::Size pile_tile_size(1000, 1000); | |
2386 gfx::Rect viewport(this->device_viewport_size_); | 2395 gfx::Rect viewport(this->device_viewport_size_); |
2387 ResourceFormat texture_format = RGBA_8888; | 2396 ResourceFormat texture_format = RGBA_8888; |
2388 bool nearest_neighbor = true; | 2397 bool nearest_neighbor = true; |
2389 | 2398 |
2390 RenderPassId id(1, 1); | 2399 RenderPassId id(1, 1); |
2391 gfx::Transform transform_to_root; | 2400 gfx::Transform transform_to_root; |
2392 scoped_ptr<RenderPass> pass = | 2401 scoped_ptr<RenderPass> pass = |
2393 CreateTestRenderPass(id, viewport, transform_to_root); | 2402 CreateTestRenderPass(id, viewport, transform_to_root); |
2394 | 2403 |
2395 skia::RefPtr<SkSurface> surface = | 2404 skia::RefPtr<SkSurface> surface = |
2396 skia::AdoptRef(SkSurface::NewRasterN32Premul(2, 2)); | 2405 skia::AdoptRef(SkSurface::NewRasterN32Premul(2, 2)); |
2397 ASSERT_NE(surface, nullptr); | 2406 ASSERT_NE(surface, nullptr); |
2398 SkCanvas* canvas = surface->getCanvas(); | 2407 SkCanvas* canvas = surface->getCanvas(); |
2399 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2408 canvas->drawPoint(0, 0, SK_ColorGREEN); |
2400 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2409 canvas->drawPoint(0, 1, SK_ColorBLUE); |
2401 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2410 canvas->drawPoint(1, 0, SK_ColorBLUE); |
2402 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2411 canvas->drawPoint(1, 1, SK_ColorGREEN); |
2403 skia::RefPtr<SkImage> image = skia::AdoptRef(surface->newImageSnapshot()); | 2412 skia::RefPtr<SkImage> image = skia::AdoptRef(surface->newImageSnapshot()); |
2404 | 2413 |
2405 scoped_ptr<FakePicturePile> recording = | 2414 scoped_ptr<FakeDisplayListRecordingSource> recording = |
2406 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2415 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2416 viewport.size()); | |
2407 SkPaint paint; | 2417 SkPaint paint; |
2408 paint.setFilterQuality(kLow_SkFilterQuality); | 2418 paint.setFilterQuality(kLow_SkFilterQuality); |
2409 recording->add_draw_image_with_paint(image.get(), gfx::Point(), paint); | 2419 recording->add_draw_image_with_paint(image.get(), gfx::Point(), paint); |
2410 recording->Rerecord(); | 2420 recording->Rerecord(); |
2411 scoped_refptr<FakePicturePileImpl> pile = | 2421 scoped_refptr<FakeDisplayListRasterSource> raster_source = |
2412 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); | 2422 FakeDisplayListRasterSource::CreateFromRecordingSource(recording.get(), |
2423 false); | |
2413 | 2424 |
2414 gfx::Transform quad_to_target_transform; | 2425 gfx::Transform quad_to_target_transform; |
2415 SharedQuadState* shared_state = | 2426 SharedQuadState* shared_state = |
2416 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2427 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
2417 | 2428 |
2418 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2429 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2419 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 2430 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
2420 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, | 2431 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, |
2421 texture_format, viewport, 1.f, pile.get()); | 2432 texture_format, viewport, 1.f, raster_source.get()); |
danakj
2015/09/22 21:52:15
D:
vmpstr
2015/09/22 22:57:49
Changed to Pass.
| |
2422 | 2433 |
2423 RenderPassList pass_list; | 2434 RenderPassList pass_list; |
2424 pass_list.push_back(pass.Pass()); | 2435 pass_list.push_back(pass.Pass()); |
2425 | 2436 |
2426 EXPECT_TRUE(this->RunPixelTest( | 2437 EXPECT_TRUE(this->RunPixelTest( |
2427 &pass_list, | 2438 &pass_list, |
2428 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), | 2439 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), |
2429 ExactPixelComparator(true))); | 2440 ExactPixelComparator(true))); |
2430 } | 2441 } |
2431 | 2442 |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2580 | 2591 |
2581 // Allow for a small amount of error as the blending alogrithm used by Skia is | 2592 // Allow for a small amount of error as the blending alogrithm used by Skia is |
2582 // affected by the offset in the expanded rect. | 2593 // affected by the offset in the expanded rect. |
2583 EXPECT_TRUE(this->RunPixelTest( | 2594 EXPECT_TRUE(this->RunPixelTest( |
2584 &pass_list, | 2595 &pass_list, |
2585 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers_linear.png")), | 2596 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers_linear.png")), |
2586 FuzzyPixelComparator(false, 100.f, 0.f, 16.f, 16.f, 0.f))); | 2597 FuzzyPixelComparator(false, 100.f, 0.f, 16.f, 16.f, 0.f))); |
2587 } | 2598 } |
2588 | 2599 |
2589 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) { | 2600 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) { |
2590 gfx::Size pile_tile_size(1000, 1000); | |
2591 gfx::Rect viewport(this->device_viewport_size_); | 2601 gfx::Rect viewport(this->device_viewport_size_); |
2592 // TODO(enne): the renderer should figure this out on its own. | 2602 // TODO(enne): the renderer should figure this out on its own. |
2593 ResourceFormat texture_format = RGBA_8888; | 2603 ResourceFormat texture_format = RGBA_8888; |
2594 bool nearest_neighbor = false; | 2604 bool nearest_neighbor = false; |
2595 | 2605 |
2596 RenderPassId id(1, 1); | 2606 RenderPassId id(1, 1); |
2597 gfx::Transform transform_to_root; | 2607 gfx::Transform transform_to_root; |
2598 scoped_ptr<RenderPass> pass = | 2608 scoped_ptr<RenderPass> pass = |
2599 CreateTestRenderPass(id, viewport, transform_to_root); | 2609 CreateTestRenderPass(id, viewport, transform_to_root); |
2600 | 2610 |
2601 // As scaling up the blue checkerboards will cause sampling on the GPU, | 2611 // As scaling up the blue checkerboards will cause sampling on the GPU, |
2602 // a few extra "cleanup rects" need to be added to clobber the blending | 2612 // a few extra "cleanup rects" need to be added to clobber the blending |
2603 // to make the output image more clean. This will also test subrects | 2613 // to make the output image more clean. This will also test subrects |
2604 // of the layer. | 2614 // of the layer. |
2605 gfx::Transform green_quad_to_target_transform; | 2615 gfx::Transform green_quad_to_target_transform; |
2606 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); | 2616 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); |
2607 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); | 2617 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); |
2608 | 2618 |
2609 scoped_ptr<FakePicturePile> green_recording = | 2619 scoped_ptr<FakeDisplayListRecordingSource> green_recording = |
2610 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2620 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2621 viewport.size()); | |
2611 | 2622 |
2612 SkPaint red_paint; | 2623 SkPaint red_paint; |
2613 red_paint.setColor(SK_ColorRED); | 2624 red_paint.setColor(SK_ColorRED); |
2614 green_recording->add_draw_rect_with_paint(viewport, red_paint); | 2625 green_recording->add_draw_rect_with_paint(viewport, red_paint); |
2615 SkPaint green_paint; | 2626 SkPaint green_paint; |
2616 green_paint.setColor(SK_ColorGREEN); | 2627 green_paint.setColor(SK_ColorGREEN); |
2617 green_recording->add_draw_rect_with_paint(green_rect1, green_paint); | 2628 green_recording->add_draw_rect_with_paint(green_rect1, green_paint); |
2618 green_recording->add_draw_rect_with_paint(green_rect2, green_paint); | 2629 green_recording->add_draw_rect_with_paint(green_rect2, green_paint); |
2619 green_recording->Rerecord(); | 2630 green_recording->Rerecord(); |
2620 scoped_refptr<FakePicturePileImpl> green_pile = | 2631 scoped_refptr<FakeDisplayListRasterSource> green_raster_source = |
2621 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); | 2632 FakeDisplayListRasterSource::CreateFromRecordingSource( |
2633 green_recording.get(), false); | |
2622 | 2634 |
2623 SharedQuadState* top_right_green_shared_quad_state = | 2635 SharedQuadState* top_right_green_shared_quad_state = |
2624 CreateTestSharedQuadState(green_quad_to_target_transform, viewport, | 2636 CreateTestSharedQuadState(green_quad_to_target_transform, viewport, |
2625 pass.get()); | 2637 pass.get()); |
2626 | 2638 |
2627 PictureDrawQuad* green_quad1 = | 2639 PictureDrawQuad* green_quad1 = |
2628 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2640 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2629 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, | 2641 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, |
2630 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), | 2642 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), |
2631 green_rect1.size(), nearest_neighbor, texture_format, | 2643 green_rect1.size(), nearest_neighbor, texture_format, |
2632 green_rect1, 1.f, green_pile.get()); | 2644 green_rect1, 1.f, green_raster_source.get()); |
danakj
2015/09/22 21:52:15
...
vmpstr
2015/09/22 22:57:49
Removed .get()
| |
2633 | 2645 |
2634 PictureDrawQuad* green_quad2 = | 2646 PictureDrawQuad* green_quad2 = |
2635 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2647 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2636 green_quad2->SetNew(top_right_green_shared_quad_state, green_rect2, | 2648 green_quad2->SetNew(top_right_green_shared_quad_state, green_rect2, |
2637 gfx::Rect(), green_rect2, gfx::RectF(green_rect2.size()), | 2649 gfx::Rect(), green_rect2, gfx::RectF(green_rect2.size()), |
2638 green_rect2.size(), nearest_neighbor, texture_format, | 2650 green_rect2.size(), nearest_neighbor, texture_format, |
2639 green_rect2, 1.f, green_pile.get()); | 2651 green_rect2, 1.f, green_raster_source.get()); |
danakj
2015/09/22 21:52:15
silly turn refptr into raw pointer into refptr..
vmpstr
2015/09/22 22:57:49
Changed to Pass.
| |
2640 | 2652 |
2641 // Add a green clipped checkerboard in the bottom right to help test | 2653 // Add a green clipped checkerboard in the bottom right to help test |
2642 // interleaving picture quad content and solid color content. | 2654 // interleaving picture quad content and solid color content. |
2643 gfx::Rect bottom_right_rect( | 2655 gfx::Rect bottom_right_rect( |
2644 gfx::Point(viewport.width() / 2, viewport.height() / 2), | 2656 gfx::Point(viewport.width() / 2, viewport.height() / 2), |
2645 gfx::Size(viewport.width() / 2, viewport.height() / 2)); | 2657 gfx::Size(viewport.width() / 2, viewport.height() / 2)); |
2646 SharedQuadState* bottom_right_green_shared_state = | 2658 SharedQuadState* bottom_right_green_shared_state = |
2647 CreateTestSharedQuadStateClipped(green_quad_to_target_transform, viewport, | 2659 CreateTestSharedQuadStateClipped(green_quad_to_target_transform, viewport, |
2648 bottom_right_rect, pass.get()); | 2660 bottom_right_rect, pass.get()); |
2649 SolidColorDrawQuad* bottom_right_color_quad = | 2661 SolidColorDrawQuad* bottom_right_color_quad = |
(...skipping 14 matching lines...) Expand all Loading... | |
2664 gfx::RectF blue_layer_rect2(gfx::PointF(8.0f, 6.5f), gfx::SizeF(2.5f, 2.5f)); | 2676 gfx::RectF blue_layer_rect2(gfx::PointF(8.0f, 6.5f), gfx::SizeF(2.5f, 2.5f)); |
2665 gfx::RectF union_layer_rect = blue_layer_rect1; | 2677 gfx::RectF union_layer_rect = blue_layer_rect1; |
2666 union_layer_rect.Union(blue_layer_rect2); | 2678 union_layer_rect.Union(blue_layer_rect2); |
2667 | 2679 |
2668 // Because scaling up will cause sampling outside the rects, add one extra | 2680 // Because scaling up will cause sampling outside the rects, add one extra |
2669 // pixel of buffer at the final content scale. | 2681 // pixel of buffer at the final content scale. |
2670 float inset = -1.f / contents_scale; | 2682 float inset = -1.f / contents_scale; |
2671 blue_layer_rect1.Inset(inset, inset, inset, inset); | 2683 blue_layer_rect1.Inset(inset, inset, inset, inset); |
2672 blue_layer_rect2.Inset(inset, inset, inset, inset); | 2684 blue_layer_rect2.Inset(inset, inset, inset, inset); |
2673 | 2685 |
2674 scoped_ptr<FakePicturePile> recording = | 2686 scoped_ptr<FakeDisplayListRecordingSource> recording = |
2675 FakePicturePile::CreateFilledPile(pile_tile_size, layer_rect.size()); | 2687 FakeDisplayListRecordingSource::CreateFilledRecordingSource( |
2688 layer_rect.size()); | |
2676 | 2689 |
2677 Region outside(layer_rect); | 2690 Region outside(layer_rect); |
2678 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); | 2691 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); |
2679 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { | 2692 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { |
2680 recording->add_draw_rect_with_paint(iter.rect(), red_paint); | 2693 recording->add_draw_rect_with_paint(iter.rect(), red_paint); |
2681 } | 2694 } |
2682 | 2695 |
2683 SkPaint blue_paint; | 2696 SkPaint blue_paint; |
2684 blue_paint.setColor(SK_ColorBLUE); | 2697 blue_paint.setColor(SK_ColorBLUE); |
2685 recording->add_draw_rectf_with_paint(blue_layer_rect1, blue_paint); | 2698 recording->add_draw_rectf_with_paint(blue_layer_rect1, blue_paint); |
2686 recording->add_draw_rectf_with_paint(blue_layer_rect2, blue_paint); | 2699 recording->add_draw_rectf_with_paint(blue_layer_rect2, blue_paint); |
2687 recording->Rerecord(); | 2700 recording->Rerecord(); |
2688 scoped_refptr<FakePicturePileImpl> pile = | 2701 scoped_refptr<FakeDisplayListRasterSource> raster_source = |
2689 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); | 2702 FakeDisplayListRasterSource::CreateFromRecordingSource(recording.get(), |
2703 false); | |
2690 | 2704 |
2691 gfx::Rect content_rect( | 2705 gfx::Rect content_rect( |
2692 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); | 2706 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); |
2693 gfx::Rect content_union_rect( | 2707 gfx::Rect content_union_rect( |
2694 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); | 2708 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); |
2695 | 2709 |
2696 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, | 2710 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, |
2697 // so scale an additional 10x to make them 100x100. | 2711 // so scale an additional 10x to make them 100x100. |
2698 gfx::Transform quad_to_target_transform; | 2712 gfx::Transform quad_to_target_transform; |
2699 quad_to_target_transform.Scale(10.0, 10.0); | 2713 quad_to_target_transform.Scale(10.0, 10.0); |
2700 gfx::Rect quad_content_rect(gfx::Size(20, 20)); | 2714 gfx::Rect quad_content_rect(gfx::Size(20, 20)); |
2701 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( | 2715 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( |
2702 quad_to_target_transform, quad_content_rect, pass.get()); | 2716 quad_to_target_transform, quad_content_rect, pass.get()); |
2703 | 2717 |
2704 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2718 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2705 blue_quad->SetNew(blue_shared_state, quad_content_rect, gfx::Rect(), | 2719 blue_quad->SetNew(blue_shared_state, quad_content_rect, gfx::Rect(), |
2706 quad_content_rect, gfx::RectF(quad_content_rect), | 2720 quad_content_rect, gfx::RectF(quad_content_rect), |
2707 content_union_rect.size(), nearest_neighbor, texture_format, | 2721 content_union_rect.size(), nearest_neighbor, texture_format, |
2708 content_union_rect, contents_scale, pile.get()); | 2722 content_union_rect, contents_scale, raster_source.get()); |
danakj
2015/09/22 21:52:15
but it sure is popular..
btw, you could also Pass
vmpstr
2015/09/22 22:57:49
Changed to Pass.
| |
2709 | 2723 |
2710 // Fill left half of viewport with green. | 2724 // Fill left half of viewport with green. |
2711 gfx::Transform half_green_quad_to_target_transform; | 2725 gfx::Transform half_green_quad_to_target_transform; |
2712 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); | 2726 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); |
2713 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState( | 2727 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState( |
2714 half_green_quad_to_target_transform, half_green_rect, pass.get()); | 2728 half_green_quad_to_target_transform, half_green_rect, pass.get()); |
2715 SolidColorDrawQuad* half_color_quad = | 2729 SolidColorDrawQuad* half_color_quad = |
2716 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2730 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
2717 half_color_quad->SetNew(half_green_shared_state, | 2731 half_color_quad->SetNew(half_green_shared_state, |
2718 half_green_rect, | 2732 half_green_rect, |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2934 EXPECT_TRUE(this->RunPixelTest( | 2948 EXPECT_TRUE(this->RunPixelTest( |
2935 &pass_list, | 2949 &pass_list, |
2936 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 2950 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
2937 FuzzyPixelOffByOneComparator(true))); | 2951 FuzzyPixelOffByOneComparator(true))); |
2938 } | 2952 } |
2939 | 2953 |
2940 #endif // !defined(OS_ANDROID) | 2954 #endif // !defined(OS_ANDROID) |
2941 | 2955 |
2942 } // namespace | 2956 } // namespace |
2943 } // namespace cc | 2957 } // namespace cc |
OLD | NEW |