OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
10 #include "SkBitmapDevice.h" | 10 #include "SkBitmapDevice.h" |
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 matrix.setTranslate(SK_Scalar1, SK_Scalar1); | 582 matrix.setTranslate(SK_Scalar1, SK_Scalar1); |
583 matrix.postRotate(SkIntToScalar(45), SK_Scalar1, SK_Scalar1); | 583 matrix.postRotate(SkIntToScalar(45), SK_Scalar1, SK_Scalar1); |
584 | 584 |
585 SkRTreeFactory factory; | 585 SkRTreeFactory factory; |
586 SkPictureRecorder recorder; | 586 SkPictureRecorder recorder; |
587 SkCanvas* recordingCanvas = recorder.beginRecording(64, 64, &factory, 0); | 587 SkCanvas* recordingCanvas = recorder.beginRecording(64, 64, &factory, 0); |
588 | 588 |
589 SkPaint greenPaint; | 589 SkPaint greenPaint; |
590 greenPaint.setColor(SK_ColorGREEN); | 590 greenPaint.setColor(SK_ColorGREEN); |
591 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeXYWH(10, 10, 30, 20)), g
reenPaint); | 591 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeXYWH(10, 10, 30, 20)), g
reenPaint); |
592 SkAutoTUnref<SkPicture> picture(recorder.endRecording()); | 592 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture()); |
593 SkAutoTUnref<SkImageFilter> pictureFilter(SkPictureImageFilter::Create(pictu
re.get())); | 593 SkAutoTUnref<SkImageFilter> pictureFilter(SkPictureImageFilter::Create(pictu
re.get())); |
594 SkAutoTUnref<SkShader> shader(SkPerlinNoiseShader::CreateTurbulence(SK_Scala
r1, SK_Scalar1, 1, 0)); | 594 SkAutoTUnref<SkShader> shader(SkPerlinNoiseShader::CreateTurbulence(SK_Scala
r1, SK_Scalar1, 1, 0)); |
595 SkPaint noisePaint; | 595 SkPaint noisePaint; |
596 noisePaint.setShader(shader); | 596 noisePaint.setShader(shader); |
597 | 597 |
598 SkAutoTUnref<SkImageFilter> paintFilter(SkPaintImageFilter::Create(noisePain
t)); | 598 SkAutoTUnref<SkImageFilter> paintFilter(SkPaintImageFilter::Create(noisePain
t)); |
599 | 599 |
600 SkImageFilter::CropRect leftSideCropRect(SkRect::MakeXYWH(0, 0, 32, 64)); | 600 SkImageFilter::CropRect leftSideCropRect(SkRect::MakeXYWH(0, 0, 32, 64)); |
601 SkAutoTUnref<SkImageFilter> paintFilterLeft(SkPaintImageFilter::Create(green
Paint, &leftSideCropRect)); | 601 SkAutoTUnref<SkImageFilter> paintFilterLeft(SkPaintImageFilter::Create(green
Paint, &leftSideCropRect)); |
602 SkImageFilter::CropRect rightSideCropRect(SkRect::MakeXYWH(32, 0, 32, 64)); | 602 SkImageFilter::CropRect rightSideCropRect(SkRect::MakeXYWH(32, 0, 32, 64)); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
699 SkPaint paint; | 699 SkPaint paint; |
700 paint.setImageFilter(imageFilter.get()); | 700 paint.setImageFilter(imageFilter.get()); |
701 SkPictureRecorder recorder; | 701 SkPictureRecorder recorder; |
702 SkRect bounds = SkRect::Make(SkIRect::MakeXYWH(0, 0, 50, 50)); | 702 SkRect bounds = SkRect::Make(SkIRect::MakeXYWH(0, 0, 50, 50)); |
703 SkCanvas* recordingCanvas = recorder.beginRecording(SkIntToScalar(width), | 703 SkCanvas* recordingCanvas = recorder.beginRecording(SkIntToScalar(width), |
704 SkIntToScalar(height), | 704 SkIntToScalar(height), |
705 factory, 0); | 705 factory, 0); |
706 recordingCanvas->translate(-55, 0); | 706 recordingCanvas->translate(-55, 0); |
707 recordingCanvas->saveLayer(&bounds, &paint); | 707 recordingCanvas->saveLayer(&bounds, &paint); |
708 recordingCanvas->restore(); | 708 recordingCanvas->restore(); |
709 SkAutoTUnref<SkPicture> picture1(recorder.endRecording()); | 709 sk_sp<SkPicture> picture1(recorder.finishRecordingAsPicture()); |
710 | 710 |
711 result->allocN32Pixels(width, height); | 711 result->allocN32Pixels(width, height); |
712 SkCanvas canvas(*result); | 712 SkCanvas canvas(*result); |
713 canvas.clear(0); | 713 canvas.clear(0); |
714 canvas.clipRect(SkRect::Make(SkIRect::MakeWH(tileSize, tileSize))); | 714 canvas.clipRect(SkRect::Make(SkIRect::MakeWH(tileSize, tileSize))); |
715 canvas.drawPicture(picture1.get()); | 715 canvas.drawPicture(picture1.get()); |
716 } | 716 } |
717 | 717 |
718 DEF_TEST(ImageFilterDrawMatrixBBH, reporter) { | 718 DEF_TEST(ImageFilterDrawMatrixBBH, reporter) { |
719 // Check that matrix filter when drawn tiled with BBH exactly | 719 // Check that matrix filter when drawn tiled with BBH exactly |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 SkPictureRecorder recorder1, recorder2; | 870 SkPictureRecorder recorder1, recorder2; |
871 // The only difference between these two pictures is that one has RTree acel
eration. | 871 // The only difference between these two pictures is that one has RTree acel
eration. |
872 SkCanvas* recordingCanvas1 = recorder1.beginRecording(SkIntToScalar(width), | 872 SkCanvas* recordingCanvas1 = recorder1.beginRecording(SkIntToScalar(width), |
873 SkIntToScalar(height), | 873 SkIntToScalar(height), |
874 nullptr, 0); | 874 nullptr, 0); |
875 SkCanvas* recordingCanvas2 = recorder2.beginRecording(SkIntToScalar(width), | 875 SkCanvas* recordingCanvas2 = recorder2.beginRecording(SkIntToScalar(width), |
876 SkIntToScalar(height), | 876 SkIntToScalar(height), |
877 &factory, 0); | 877 &factory, 0); |
878 draw_blurred_rect(recordingCanvas1); | 878 draw_blurred_rect(recordingCanvas1); |
879 draw_blurred_rect(recordingCanvas2); | 879 draw_blurred_rect(recordingCanvas2); |
880 SkAutoTUnref<SkPicture> picture1(recorder1.endRecording()); | 880 sk_sp<SkPicture> picture1(recorder1.finishRecordingAsPicture()); |
881 SkAutoTUnref<SkPicture> picture2(recorder2.endRecording()); | 881 sk_sp<SkPicture> picture2(recorder2.finishRecordingAsPicture()); |
882 for (int y = 0; y < height; y += tileSize) { | 882 for (int y = 0; y < height; y += tileSize) { |
883 for (int x = 0; x < width; x += tileSize) { | 883 for (int x = 0; x < width; x += tileSize) { |
884 SkRect tileRect = SkRect::Make(SkIRect::MakeXYWH(x, y, tileSize, til
eSize)); | 884 SkRect tileRect = SkRect::Make(SkIRect::MakeXYWH(x, y, tileSize, til
eSize)); |
885 draw_picture_clipped(&canvas1, tileRect, picture1); | 885 draw_picture_clipped(&canvas1, tileRect, picture1.get()); |
886 draw_picture_clipped(&canvas2, tileRect, picture2); | 886 draw_picture_clipped(&canvas2, tileRect, picture2.get()); |
887 } | 887 } |
888 } | 888 } |
889 for (int y = 0; y < height; y++) { | 889 for (int y = 0; y < height; y++) { |
890 int diffs = memcmp(result1.getAddr32(0, y), result2.getAddr32(0, y), res
ult1.rowBytes()); | 890 int diffs = memcmp(result1.getAddr32(0, y), result2.getAddr32(0, y), res
ult1.rowBytes()); |
891 REPORTER_ASSERT(reporter, !diffs); | 891 REPORTER_ASSERT(reporter, !diffs); |
892 if (diffs) { | 892 if (diffs) { |
893 break; | 893 break; |
894 } | 894 } |
895 } | 895 } |
896 } | 896 } |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
980 new MatrixTestImageFilter(reporter, expectedMatrix)); | 980 new MatrixTestImageFilter(reporter, expectedMatrix)); |
981 paint.setImageFilter(imageFilter.get()); | 981 paint.setImageFilter(imageFilter.get()); |
982 recordingCanvas->saveLayer(nullptr, &paint); | 982 recordingCanvas->saveLayer(nullptr, &paint); |
983 SkPaint solidPaint; | 983 SkPaint solidPaint; |
984 solidPaint.setColor(0xFFFFFFFF); | 984 solidPaint.setColor(0xFFFFFFFF); |
985 recordingCanvas->save(); | 985 recordingCanvas->save(); |
986 recordingCanvas->scale(SkIntToScalar(10), SkIntToScalar(10)); | 986 recordingCanvas->scale(SkIntToScalar(10), SkIntToScalar(10)); |
987 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(100, 100)), solidPain
t); | 987 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(100, 100)), solidPain
t); |
988 recordingCanvas->restore(); // scale | 988 recordingCanvas->restore(); // scale |
989 recordingCanvas->restore(); // saveLayer | 989 recordingCanvas->restore(); // saveLayer |
990 SkAutoTUnref<SkPicture> picture(recorder.endRecording()); | |
991 | 990 |
992 canvas.drawPicture(picture); | 991 canvas.drawPicture(recorder.finishRecordingAsPicture()); |
993 } | 992 } |
994 | 993 |
995 DEF_TEST(ImageFilterCrossProcessPictureImageFilter, reporter) { | 994 DEF_TEST(ImageFilterCrossProcessPictureImageFilter, reporter) { |
996 SkRTreeFactory factory; | 995 SkRTreeFactory factory; |
997 SkPictureRecorder recorder; | 996 SkPictureRecorder recorder; |
998 SkCanvas* recordingCanvas = recorder.beginRecording(1, 1, &factory, 0); | 997 SkCanvas* recordingCanvas = recorder.beginRecording(1, 1, &factory, 0); |
999 | 998 |
1000 // Create an SkPicture which simply draws a green 1x1 rectangle. | 999 // Create an SkPicture which simply draws a green 1x1 rectangle. |
1001 SkPaint greenPaint; | 1000 SkPaint greenPaint; |
1002 greenPaint.setColor(SK_ColorGREEN); | 1001 greenPaint.setColor(SK_ColorGREEN); |
1003 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPaint); | 1002 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPaint); |
1004 SkAutoTUnref<SkPicture> picture(recorder.endRecording()); | 1003 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture()); |
1005 | 1004 |
1006 // Wrap that SkPicture in an SkPictureImageFilter. | 1005 // Wrap that SkPicture in an SkPictureImageFilter. |
1007 SkAutoTUnref<SkImageFilter> imageFilter( | 1006 SkAutoTUnref<SkImageFilter> imageFilter( |
1008 SkPictureImageFilter::Create(picture.get())); | 1007 SkPictureImageFilter::Create(picture.get())); |
1009 | 1008 |
1010 // Check that SkPictureImageFilter successfully serializes its contained | 1009 // Check that SkPictureImageFilter successfully serializes its contained |
1011 // SkPicture when not in cross-process mode. | 1010 // SkPicture when not in cross-process mode. |
1012 SkPaint paint; | 1011 SkPaint paint; |
1013 paint.setImageFilter(imageFilter.get()); | 1012 paint.setImageFilter(imageFilter.get()); |
1014 SkPictureRecorder outerRecorder; | 1013 SkPictureRecorder outerRecorder; |
1015 SkCanvas* outerCanvas = outerRecorder.beginRecording(1, 1, &factory, 0); | 1014 SkCanvas* outerCanvas = outerRecorder.beginRecording(1, 1, &factory, 0); |
1016 SkPaint redPaintWithFilter; | 1015 SkPaint redPaintWithFilter; |
1017 redPaintWithFilter.setColor(SK_ColorRED); | 1016 redPaintWithFilter.setColor(SK_ColorRED); |
1018 redPaintWithFilter.setImageFilter(imageFilter.get()); | 1017 redPaintWithFilter.setImageFilter(imageFilter.get()); |
1019 outerCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), redPaintWithFilte
r); | 1018 outerCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), redPaintWithFilte
r); |
1020 SkAutoTUnref<SkPicture> outerPicture(outerRecorder.endRecording()); | 1019 sk_sp<SkPicture> outerPicture(outerRecorder.finishRecordingAsPicture()); |
1021 | 1020 |
1022 SkBitmap bitmap; | 1021 SkBitmap bitmap; |
1023 bitmap.allocN32Pixels(1, 1); | 1022 bitmap.allocN32Pixels(1, 1); |
1024 SkCanvas canvas(bitmap); | 1023 SkCanvas canvas(bitmap); |
1025 | 1024 |
1026 // The result here should be green, since the filter replaces the primitive'
s red interior. | 1025 // The result here should be green, since the filter replaces the primitive'
s red interior. |
1027 canvas.clear(0x0); | 1026 canvas.clear(0x0); |
1028 canvas.drawPicture(outerPicture); | 1027 canvas.drawPicture(outerPicture); |
1029 uint32_t pixel = *bitmap.getAddr32(0, 0); | 1028 uint32_t pixel = *bitmap.getAddr32(0, 0); |
1030 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); | 1029 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); |
1031 | 1030 |
1032 // Check that, for now, SkPictureImageFilter does not serialize or | 1031 // Check that, for now, SkPictureImageFilter does not serialize or |
1033 // deserialize its contained picture when the filter is serialized | 1032 // deserialize its contained picture when the filter is serialized |
1034 // cross-process. Do this by "laundering" it through SkValidatingReadBuffer. | 1033 // cross-process. Do this by "laundering" it through SkValidatingReadBuffer. |
1035 SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(imageFilter.get()
)); | 1034 SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(imageFilter.get()
)); |
1036 SkAutoTUnref<SkFlattenable> flattenable(SkValidatingDeserializeFlattenable( | 1035 SkAutoTUnref<SkFlattenable> flattenable(SkValidatingDeserializeFlattenable( |
1037 data->data(), data->size(), SkImageFilter::GetFlattenableType())); | 1036 data->data(), data->size(), SkImageFilter::GetFlattenableType())); |
1038 SkImageFilter* unflattenedFilter = static_cast<SkImageFilter*>(flattenable.g
et()); | 1037 SkImageFilter* unflattenedFilter = static_cast<SkImageFilter*>(flattenable.g
et()); |
1039 | 1038 |
1040 redPaintWithFilter.setImageFilter(unflattenedFilter); | 1039 redPaintWithFilter.setImageFilter(unflattenedFilter); |
1041 SkPictureRecorder crossProcessRecorder; | 1040 SkPictureRecorder crossProcessRecorder; |
1042 SkCanvas* crossProcessCanvas = crossProcessRecorder.beginRecording(1, 1, &fa
ctory, 0); | 1041 SkCanvas* crossProcessCanvas = crossProcessRecorder.beginRecording(1, 1, &fa
ctory, 0); |
1043 crossProcessCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), redPaintWi
thFilter); | 1042 crossProcessCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), redPaintWi
thFilter); |
1044 SkAutoTUnref<SkPicture> crossProcessPicture(crossProcessRecorder.endRecordin
g()); | 1043 sk_sp<SkPicture> crossProcessPicture(crossProcessRecorder.finishRecordingAsP
icture()); |
1045 | 1044 |
1046 canvas.clear(0x0); | 1045 canvas.clear(0x0); |
1047 canvas.drawPicture(crossProcessPicture); | 1046 canvas.drawPicture(crossProcessPicture); |
1048 pixel = *bitmap.getAddr32(0, 0); | 1047 pixel = *bitmap.getAddr32(0, 0); |
1049 // If the security precautions are enabled, the result here should not be gr
een, since the | 1048 // If the security precautions are enabled, the result here should not be gr
een, since the |
1050 // filter draws nothing. | 1049 // filter draws nothing. |
1051 REPORTER_ASSERT(reporter, SkPicture::PictureIOSecurityPrecautionsEnabled() | 1050 REPORTER_ASSERT(reporter, SkPicture::PictureIOSecurityPrecautionsEnabled() |
1052 ? pixel != SK_ColorGREEN : pixel == SK_ColorGREEN); | 1051 ? pixel != SK_ColorGREEN : pixel == SK_ColorGREEN); |
1053 } | 1052 } |
1054 | 1053 |
1055 static void test_clipped_picture_imagefilter(SkImageFilter::Proxy* proxy, | 1054 static void test_clipped_picture_imagefilter(SkImageFilter::Proxy* proxy, |
1056 skiatest::Reporter* reporter, | 1055 skiatest::Reporter* reporter, |
1057 GrContext* context) { | 1056 GrContext* context) { |
1058 SkAutoTUnref<SkPicture> picture; | 1057 sk_sp<SkPicture> picture; |
1059 | 1058 |
1060 { | 1059 { |
1061 SkRTreeFactory factory; | 1060 SkRTreeFactory factory; |
1062 SkPictureRecorder recorder; | 1061 SkPictureRecorder recorder; |
1063 SkCanvas* recordingCanvas = recorder.beginRecording(1, 1, &factory, 0); | 1062 SkCanvas* recordingCanvas = recorder.beginRecording(1, 1, &factory, 0); |
1064 | 1063 |
1065 // Create an SkPicture which simply draws a green 1x1 rectangle. | 1064 // Create an SkPicture which simply draws a green 1x1 rectangle. |
1066 SkPaint greenPaint; | 1065 SkPaint greenPaint; |
1067 greenPaint.setColor(SK_ColorGREEN); | 1066 greenPaint.setColor(SK_ColorGREEN); |
1068 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPain
t); | 1067 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPain
t); |
1069 picture.reset(recorder.endRecording()); | 1068 picture = recorder.finishRecordingAsPicture(); |
1070 } | 1069 } |
1071 | 1070 |
1072 SkAutoTUnref<SkSpecialImage> srcImg(create_empty_special_image(context, prox
y, 2)); | 1071 SkAutoTUnref<SkSpecialImage> srcImg(create_empty_special_image(context, prox
y, 2)); |
1073 | 1072 |
1074 SkAutoTUnref<SkImageFilter> imageFilter(SkPictureImageFilter::Create(picture
.get())); | 1073 SkAutoTUnref<SkImageFilter> imageFilter(SkPictureImageFilter::Create(picture
.get())); |
1075 | 1074 |
1076 SkIPoint offset; | 1075 SkIPoint offset; |
1077 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), nul
lptr); | 1076 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), nul
lptr); |
1078 | 1077 |
1079 SkAutoTUnref<SkSpecialImage> resultImage(imageFilter->filterImage(srcImg, ct
x, &offset)); | 1078 SkAutoTUnref<SkSpecialImage> resultImage(imageFilter->filterImage(srcImg, ct
x, &offset)); |
(...skipping 28 matching lines...) Expand all Loading... |
1108 SkPaint imageFilterPaint; | 1107 SkPaint imageFilterPaint; |
1109 imageFilterPaint.setImageFilter(imageFilter.get()); | 1108 imageFilterPaint.setImageFilter(imageFilter.get()); |
1110 SkPaint colorFilterPaint; | 1109 SkPaint colorFilterPaint; |
1111 colorFilterPaint.setColorFilter(green.get()); | 1110 colorFilterPaint.setColorFilter(green.get()); |
1112 | 1111 |
1113 SkRect bounds = SkRect::MakeWH(10, 10); | 1112 SkRect bounds = SkRect::MakeWH(10, 10); |
1114 | 1113 |
1115 SkCanvas* recordingCanvas = recorder.beginRecording(10, 10, &factory, 0); | 1114 SkCanvas* recordingCanvas = recorder.beginRecording(10, 10, &factory, 0); |
1116 recordingCanvas->saveLayer(&bounds, &imageFilterPaint); | 1115 recordingCanvas->saveLayer(&bounds, &imageFilterPaint); |
1117 recordingCanvas->restore(); | 1116 recordingCanvas->restore(); |
1118 SkAutoTUnref<SkPicture> picture(recorder.endRecording()); | 1117 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture()); |
1119 | 1118 |
1120 canvas.clear(0); | 1119 canvas.clear(0); |
1121 canvas.drawPicture(picture); | 1120 canvas.drawPicture(picture); |
1122 uint32_t pixel = *bitmap.getAddr32(0, 0); | 1121 uint32_t pixel = *bitmap.getAddr32(0, 0); |
1123 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); | 1122 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); |
1124 | 1123 |
1125 recordingCanvas = recorder.beginRecording(10, 10, &factory, 0); | 1124 recordingCanvas = recorder.beginRecording(10, 10, &factory, 0); |
1126 recordingCanvas->saveLayer(nullptr, &imageFilterPaint); | 1125 recordingCanvas->saveLayer(nullptr, &imageFilterPaint); |
1127 recordingCanvas->restore(); | 1126 recordingCanvas->restore(); |
1128 SkAutoTUnref<SkPicture> picture2(recorder.endRecording()); | 1127 sk_sp<SkPicture> picture2(recorder.finishRecordingAsPicture()); |
1129 | 1128 |
1130 canvas.clear(0); | 1129 canvas.clear(0); |
1131 canvas.drawPicture(picture2); | 1130 canvas.drawPicture(picture2); |
1132 pixel = *bitmap.getAddr32(0, 0); | 1131 pixel = *bitmap.getAddr32(0, 0); |
1133 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); | 1132 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); |
1134 | 1133 |
1135 recordingCanvas = recorder.beginRecording(10, 10, &factory, 0); | 1134 recordingCanvas = recorder.beginRecording(10, 10, &factory, 0); |
1136 recordingCanvas->saveLayer(&bounds, &colorFilterPaint); | 1135 recordingCanvas->saveLayer(&bounds, &colorFilterPaint); |
1137 recordingCanvas->restore(); | 1136 recordingCanvas->restore(); |
1138 SkAutoTUnref<SkPicture> picture3(recorder.endRecording()); | 1137 sk_sp<SkPicture> picture3(recorder.finishRecordingAsPicture()); |
1139 | 1138 |
1140 canvas.clear(0); | 1139 canvas.clear(0); |
1141 canvas.drawPicture(picture3); | 1140 canvas.drawPicture(picture3); |
1142 pixel = *bitmap.getAddr32(0, 0); | 1141 pixel = *bitmap.getAddr32(0, 0); |
1143 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); | 1142 REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); |
1144 } | 1143 } |
1145 | 1144 |
1146 static void test_huge_blur(SkCanvas* canvas, skiatest::Reporter* reporter) { | 1145 static void test_huge_blur(SkCanvas* canvas, skiatest::Reporter* reporter) { |
1147 SkBitmap bitmap; | 1146 SkBitmap bitmap; |
1148 bitmap.allocN32Pixels(100, 100); | 1147 bitmap.allocN32Pixels(100, 100); |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1532 test_xfermode_cropped_input(&canvas, reporter); | 1531 test_xfermode_cropped_input(&canvas, reporter); |
1533 } | 1532 } |
1534 | 1533 |
1535 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { | 1534 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { |
1536 SkAutoTUnref<SkSurface> surface( | 1535 SkAutoTUnref<SkSurface> surface( |
1537 SkSurface::NewRenderTarget(context, SkBudgeted::kYes, | 1536 SkSurface::NewRenderTarget(context, SkBudgeted::kYes, |
1538 SkImageInfo::MakeN32Premul(100, 100))); | 1537 SkImageInfo::MakeN32Premul(100, 100))); |
1539 test_large_blur_input(reporter, surface->getCanvas()); | 1538 test_large_blur_input(reporter, surface->getCanvas()); |
1540 } | 1539 } |
1541 #endif | 1540 #endif |
OLD | NEW |