6
6
*/
7
7
8
8
#include " include/core/SkCanvas.h"
9
- #include " include/core/SkColorFilter.h"
10
- #include " include/core/SkColorPriv.h"
11
- #include " include/core/SkGraphics.h"
12
- #include " include/core/SkPath.h"
13
- #include " include/core/SkRegion.h"
14
- #include " include/core/SkShader.h"
9
+ #include " include/core/SkFont.h"
15
10
#include " include/core/SkString.h"
16
- #include " include/core/SkTime.h"
17
- #include " include/effects/SkGradientShader.h"
18
11
#include " include/utils/SkTextUtils.h"
19
12
#include " samplecode/DecodeFile.h"
20
13
#include " samplecode/Sample.h"
21
- #include " src/utils/SkUTF.h"
14
+ #include " tools/Resources.h"
15
+
16
+ #include < vector>
22
17
23
18
static const char * gNames [] = {
24
- " /skimages/background_01.png"
19
+ " images/mandrill_512_q075.jpg" ,
20
+ " images/dog.jpg" ,
25
21
};
26
22
27
- class Filter2View : public Sample {
28
- public:
29
- std::unique_ptr<SkBitmap[]> fBitmaps ;
30
- int fBitmapCount ;
31
- int fCurrIndex ;
32
-
33
- Filter2View () {
34
- fBitmapCount = SK_ARRAY_COUNT (gNames )*2 ;
35
- fBitmaps .reset (new SkBitmap[fBitmapCount ]);
23
+ struct Filter2View : public Sample {
24
+ std::vector<SkBitmap> fBitmaps ;
36
25
37
- for (int i = 0 ; i < fBitmapCount /2 ; i++) {
38
- decode_file (gNames [i], &fBitmaps [i]);
26
+ void onOnceBeforeDraw () override {
27
+ SkASSERT (fBitmaps .empty ());
28
+ fBitmaps .reserve (SK_ARRAY_COUNT (gNames ) * 2 );
29
+ for (const char * name : gNames ) {
30
+ SkBitmap bitmap;
31
+ (void )decode_file (GetResourceAsData (name), &bitmap);
32
+ fBitmaps .push_back (std::move (bitmap));
39
33
}
40
- for (int i = fBitmapCount /2 ; i < fBitmapCount ; i++) {
41
- decode_file (gNames [i-fBitmapCount /2 ], &fBitmaps [i], kRGB_565_SkColorType );
34
+ for (const char * name : gNames ) {
35
+ SkBitmap bitmap;
36
+ (void )decode_file (GetResourceAsData (name), &bitmap, kRGB_565_SkColorType );
37
+ fBitmaps .push_back (std::move (bitmap));
42
38
}
43
- fCurrIndex = 0 ;
44
-
45
39
this ->setBGColor (SK_ColorGRAY);
46
40
}
47
41
48
- protected:
49
- SkString name () override { return SkStringPrintf (" Filter/Dither %s" , gNames [fCurrIndex ]); }
42
+ SkString name () override { return SkString (" Filter/Dither" ); }
50
43
51
44
void onDrawContent (SkCanvas* canvas) override {
52
45
canvas->translate (SkIntToScalar (10 ), SkIntToScalar (50 ));
@@ -62,8 +55,8 @@ class Filter2View : public Sample {
62
55
paint.setFilterQuality (k == 1 ? kLow_SkFilterQuality : kNone_SkFilterQuality );
63
56
for (int j = 0 ; j < 2 ; j++) {
64
57
paint.setDither (j == 1 );
65
- for (int i = 0 ; i < fBitmapCount ; i++) {
66
- SkScalar x = (k * fBitmapCount + j) * W;
58
+ for (int i = 0 ; i < ( int ) fBitmaps . size () ; i++) {
59
+ SkScalar x = (k * ( int ) fBitmaps . size () + j) * W;
67
60
SkScalar y = i * H;
68
61
x = SkScalarRoundToScalar (x);
69
62
y = SkScalarRoundToScalar (y);
@@ -88,11 +81,5 @@ class Filter2View : public Sample {
88
81
}
89
82
}
90
83
}
91
-
92
- private:
93
- typedef Sample INHERITED;
94
84
};
95
-
96
- // ////////////////////////////////////////////////////////////////////////////
97
-
98
85
DEF_SAMPLE ( return new Filter2View(); )
0 commit comments