@@ -402,56 +402,7 @@ TEST(RasterCache, ComputeDeviceRectBasedOnFractionalTranslation) {
402402 SkRect logical_rect = SkRect::MakeLTRB (0 , 0 , 300.2 , 300.3 );
403403 SkMatrix ctm = SkMatrix::MakeAll (2.0 , 0 , 0 , 0 , 2.0 , 0 , 0 , 0 , 1 );
404404 auto result = RasterCacheUtil::GetDeviceBounds (logical_rect, ctm);
405- ASSERT_EQ (result, SkRect::MakeLTRB (0.0 , 0.0 , 600.4 , 600.6 ));
406- }
407-
408- // Construct a cache result whose device target rectangle rounds out to be one
409- // pixel wider than the cached image. Verify that it can be drawn without
410- // triggering any assertions.
411- TEST (RasterCache, DeviceRectRoundOutForDisplayList) {
412- size_t threshold = 1 ;
413- flutter::RasterCache cache (threshold);
414-
415- SkRect logical_rect = SkRect::MakeLTRB (28 , 0 , 354.56731 , 310.288 );
416- DisplayListBuilder builder (logical_rect);
417- builder.setColor (SK_ColorRED);
418- builder.drawRect (logical_rect);
419- sk_sp<DisplayList> display_list = builder.Build ();
420-
421- SkMatrix ctm = SkMatrix::MakeAll (1.3312 , 0 , 233 , 0 , 1.3312 , 206 , 0 , 0 , 1 );
422- SkPaint paint;
423-
424- SkCanvas canvas (100 , 100 , nullptr );
425- canvas.setMatrix (ctm);
426-
427- FixedRefreshRateStopwatch raster_time;
428- FixedRefreshRateStopwatch ui_time;
429- MutatorsStack mutators_stack;
430- PrerollContextHolder preroll_context_holder = GetSamplePrerollContextHolder (
431- &cache, &raster_time, &ui_time, &mutators_stack);
432- PaintContextHolder paint_context_holder =
433- GetSamplePaintContextHolder (&cache, &raster_time, &ui_time);
434- auto & preroll_context = preroll_context_holder.preroll_context ;
435- auto & paint_context = paint_context_holder.paint_context ;
436-
437- cache.BeginFrame ();
438- DisplayListRasterCacheItem display_list_item (display_list.get (), SkPoint (),
439- true , false );
440-
441- ASSERT_FALSE (RasterCacheItemPrerollAndTryToRasterCache (
442- display_list_item, preroll_context, paint_context, ctm));
443- ASSERT_FALSE (display_list_item.Draw (paint_context, &canvas, &paint));
444-
445- cache.EndFrame ();
446- cache.BeginFrame ();
447-
448- ASSERT_TRUE (RasterCacheItemPrerollAndTryToRasterCache (
449- display_list_item, preroll_context, paint_context, ctm));
450- ASSERT_TRUE (display_list_item.Draw (paint_context, &canvas, &paint));
451-
452- canvas.translate (248 , 0 );
453- ASSERT_TRUE (cache.Draw (display_list_item.GetId ().value (), canvas, &paint));
454- ASSERT_TRUE (display_list_item.Draw (paint_context, &canvas, &paint));
405+ ASSERT_EQ (result, SkIRect::MakeLTRB (0 , 0 , 601 , 601 ));
455406}
456407
457408TEST (RasterCache, NestedOpCountMetricUsedForDisplayList) {
@@ -787,67 +738,5 @@ TEST_F(RasterCacheTest, RasterCacheKeyID_LayerChildrenIds) {
787738 ASSERT_EQ (ids, expected_ids);
788739}
789740
790- TEST_F (RasterCacheTest, RasterCacheBleedingNoClipNeeded) {
791- SkImageInfo info =
792- SkImageInfo::MakeN32 (40 , 40 , SkAlphaType::kOpaque_SkAlphaType );
793-
794- auto image = SkImage::MakeRasterData (
795- info, SkData::MakeUninitialized (40 * 40 * 4 ), 40 * 4 );
796- auto canvas = MockCanvas ();
797- canvas.setMatrix (SkMatrix::Scale (2 , 2 ));
798- // Drawing cached image does not exceeds physical pixels of the original
799- // bounds and does not need to be clipped.
800- auto cache_result =
801- RasterCacheResult (image, SkRect::MakeXYWH (100.3 , 100.3 , 20 , 20 ), " " );
802- auto paint = SkPaint ();
803- cache_result.draw (canvas, &paint);
804-
805- EXPECT_EQ (canvas.draw_calls (),
806- std::vector ({
807- MockCanvas::DrawCall{
808- 0 , MockCanvas::SetMatrixData{SkM44::Scale (2 , 2 )}},
809- MockCanvas::DrawCall{0 , MockCanvas::SaveData{1 }},
810- MockCanvas::DrawCall{1 , MockCanvas::SetMatrixData{SkM44 ()}},
811- MockCanvas::DrawCall{
812- 1 , MockCanvas::DrawImageData{image, 200.6 , 200.6 ,
813- SkSamplingOptions (), paint}},
814- MockCanvas::DrawCall{1 , MockCanvas::RestoreData{0 }},
815- }));
816- }
817-
818- TEST_F (RasterCacheTest, RasterCacheBleedingClipNeeded) {
819- SkImageInfo info =
820- SkImageInfo::MakeN32 (40 , 40 , SkAlphaType::kOpaque_SkAlphaType );
821-
822- auto image = SkImage::MakeRasterData (
823- info, SkData::MakeUninitialized (40 * 40 * 4 ), 40 * 4 );
824- auto canvas = MockCanvas ();
825- canvas.setMatrix (SkMatrix::Scale (2 , 2 ));
826-
827- auto cache_result =
828- RasterCacheResult (image, SkRect::MakeXYWH (100.3 , 100.3 , 19.6 , 19.6 ), " " );
829- auto paint = SkPaint ();
830- cache_result.draw (canvas, &paint);
831-
832- EXPECT_EQ (
833- canvas.draw_calls (),
834- std::vector ({
835- MockCanvas::DrawCall{0 ,
836- MockCanvas::SetMatrixData{SkM44::Scale (2 , 2 )}},
837- MockCanvas::DrawCall{0 , MockCanvas::SaveData{1 }},
838- MockCanvas::DrawCall{1 , MockCanvas::SetMatrixData{SkM44 ()}},
839- MockCanvas::DrawCall{1 , MockCanvas::SaveData{2 }},
840- MockCanvas::DrawCall{
841- 2 , MockCanvas::ClipRectData{SkRect::MakeLTRB (200 , 200 , 240 , 240 ),
842- SkClipOp::kIntersect ,
843- MockCanvas::kHard_ClipEdgeStyle }},
844- MockCanvas::DrawCall{
845- 2 , MockCanvas::DrawImageData{image, 200.6 , 200.6 ,
846- SkSamplingOptions (), paint}},
847- MockCanvas::DrawCall{2 , MockCanvas::RestoreData{1 }},
848- MockCanvas::DrawCall{1 , MockCanvas::RestoreData{0 }},
849- }));
850- }
851-
852741} // namespace testing
853742} // namespace flutter
0 commit comments