OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "gm.h" | 8 #include "gm.h" |
9 | 9 |
10 #include "Resources.h" | 10 #include "Resources.h" |
11 #include "SkData.h" | |
12 #include "SkImage.h" | |
11 #include "SkGradientShader.h" | 13 #include "SkGradientShader.h" |
12 #include "SkTypeface.h" | 14 #include "SkTypeface.h" |
13 #include "SkImageDecoder.h" | |
14 #include "SkStream.h" | 15 #include "SkStream.h" |
15 #include "SkPaint.h" | 16 #include "SkPaint.h" |
16 | 17 |
17 static void make_checker(SkBitmap* bm, int size, int numChecks) { | 18 static void make_checker(SkBitmap* bm, int size, int numChecks) { |
18 bm->allocN32Pixels(size, size); | 19 bm->allocN32Pixels(size, size); |
19 for (int y = 0; y < size; ++y) { | 20 for (int y = 0; y < size; ++y) { |
20 for (int x = 0; x < size; ++x) { | 21 for (int x = 0; x < size; ++x) { |
21 SkPMColor* s = bm->getAddr32(x, y); | 22 SkPMColor* s = bm->getAddr32(x, y); |
22 int cx = (x * numChecks) / size; | 23 int cx = (x * numChecks) / size; |
23 int cy = (y * numChecks) / size; | 24 int cy = (y * numChecks) / size; |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
164 : INHERITED(filterQuality), fFilename(filename) | 165 : INHERITED(filterQuality), fFilename(filename) |
165 { | 166 { |
166 fName.printf("downsamplebitmap_image_%s_%s", this->filterQualityToSt ring(), filename); | 167 fName.printf("downsamplebitmap_image_%s_%s", this->filterQualityToSt ring(), filename); |
167 } | 168 } |
168 | 169 |
169 protected: | 170 protected: |
170 SkString fFilename; | 171 SkString fFilename; |
171 int fSize; | 172 int fSize; |
172 | 173 |
173 void make_bitmap() override { | 174 void make_bitmap() override { |
174 SkImageDecoder* codec = nullptr; | 175 SkAutoTUnref<SkData> data(SkData::NewFromFileName( |
175 SkString resourcePath = GetResourcePath(fFilename.c_str()); | 176 GetResourcePath(fFilename.c_str()).c_str())); |
176 SkFILEStream stream(resourcePath.c_str()); | 177 SkAutoTDelete<SkImage> image(SkImage::NewFromEncoded(data)); |
177 if (stream.isValid()) { | 178 if (!image || !image->asLegacyBitmap(&fBM, SkImage::kRW_LegacyBitmapMode )) { |
scroggo
2016/03/17 13:05:48
Could you simplify this by using GetResourceAsBitm
msarett
2016/03/17 13:53:38
Done.
| |
178 codec = SkImageDecoder::Factory(&stream); | 179 fBM.allocN32Pixels(1, 1); |
179 } | 180 fBM.eraseARGB(255, 255, 0 , 0); // red == bad |
180 if (codec) { | 181 } |
181 stream.rewind(); | 182 fSize = fBM.height(); |
182 codec->decode(&stream, &fBM, kN32_SkColorType, SkImageDecoder::kDe codePixels_Mode); | |
183 delete codec; | |
184 } else { | |
185 fBM.allocN32Pixels(1, 1); | |
186 *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad | |
187 } | |
188 fSize = fBM.height(); | |
189 } | 183 } |
190 private: | 184 private: |
191 typedef DownsampleBitmapGM INHERITED; | 185 typedef DownsampleBitmapGM INHERITED; |
192 }; | 186 }; |
193 | 187 |
194 DEF_GM( return new DownsampleBitmapTextGM(72, kHigh_SkFilterQuality); ) | 188 DEF_GM( return new DownsampleBitmapTextGM(72, kHigh_SkFilterQuality); ) |
195 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kHigh_SkFilterQuality ); ) | 189 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kHigh_SkFilterQuality ); ) |
196 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kHigh_SkFilterQua lity); ) | 190 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kHigh_SkFilterQua lity); ) |
197 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", | 191 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", |
198 kHigh_SkFilterQuality); ) | 192 kHigh_SkFilterQuality); ) |
199 | 193 |
200 DEF_GM( return new DownsampleBitmapTextGM(72, kMedium_SkFilterQuality); ) | 194 DEF_GM( return new DownsampleBitmapTextGM(72, kMedium_SkFilterQuality); ) |
201 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kMedium_SkFilterQuali ty); ) | 195 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kMedium_SkFilterQuali ty); ) |
202 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kMedium_SkFilterQ uality); ) | 196 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kMedium_SkFilterQ uality); ) |
203 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", | 197 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", |
204 kMedium_SkFilterQuality); ) | 198 kMedium_SkFilterQuality); ) |
205 | 199 |
206 DEF_GM( return new DownsampleBitmapTextGM(72, kLow_SkFilterQuality); ) | 200 DEF_GM( return new DownsampleBitmapTextGM(72, kLow_SkFilterQuality); ) |
207 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kLow_SkFilterQuality) ; ) | 201 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kLow_SkFilterQuality) ; ) |
208 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kLow_SkFilterQual ity); ) | 202 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kLow_SkFilterQual ity); ) |
209 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", | 203 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", |
210 kLow_SkFilterQuality); ) | 204 kLow_SkFilterQuality); ) |
211 | 205 |
212 DEF_GM( return new DownsampleBitmapTextGM(72, kNone_SkFilterQuality); ) | 206 DEF_GM( return new DownsampleBitmapTextGM(72, kNone_SkFilterQuality); ) |
213 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kNone_SkFilterQuality ); ) | 207 DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kNone_SkFilterQuality ); ) |
214 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kNone_SkFilterQua lity); ) | 208 DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kNone_SkFilterQua lity); ) |
215 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", | 209 DEF_GM( return new DownsampleBitmapImageGM("mandrill_132x132_12x12.astc", |
216 kNone_SkFilterQuality); ) | 210 kNone_SkFilterQuality); ) |
OLD | NEW |