| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 "SkCanvas.h" | 8 #include "SkCanvas.h" |
| 9 #include "SkData.h" | 9 #include "SkData.h" |
| 10 #include "SkDevice.h" | 10 #include "SkDevice.h" |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 | 238 |
| 239 SkAutoTUnref<SkImage> image2(surface->newImageSnapshot()); | 239 SkAutoTUnref<SkImage> image2(surface->newImageSnapshot()); |
| 240 REPORTER_ASSERT(reporter, image2->readPixels(dstInfo, pixels, dstRowBytes, 0
, 0)); | 240 REPORTER_ASSERT(reporter, image2->readPixels(dstInfo, pixels, dstRowBytes, 0
, 0)); |
| 241 REPORTER_ASSERT(reporter, pixels[0] == green); | 241 REPORTER_ASSERT(reporter, pixels[0] == green); |
| 242 REPORTER_ASSERT(reporter, pixels[1] == green); | 242 REPORTER_ASSERT(reporter, pixels[1] == green); |
| 243 REPORTER_ASSERT(reporter, pixels[2] == green); | 243 REPORTER_ASSERT(reporter, pixels[2] == green); |
| 244 REPORTER_ASSERT(reporter, pixels[3] == red); | 244 REPORTER_ASSERT(reporter, pixels[3] == red); |
| 245 } | 245 } |
| 246 | 246 |
| 247 ////////////////////////////////////////////////////////////////////////////////
///////////////// | 247 ////////////////////////////////////////////////////////////////////////////////
///////////////// |
| 248 #include "SkImageGenerator.h" | |
| 249 #include "SkData.h" | |
| 250 | |
| 251 const uint8_t tiny_png[] = { | |
| 252 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, | |
| 253 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x64, | |
| 254 0x08, 0x06, 0x00, 0x00, 0x00, 0x70, 0xe2, 0x95, 0x54, 0x00, 0x00, 0x00, | |
| 255 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, | |
| 256 0x01, 0x6b, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0xd3, 0x41, 0x11, | |
| 257 0x00, 0x20, 0x0c, 0xc4, 0x40, 0xc0, 0xbf, 0xe7, 0xc2, 0xa0, 0x22, 0x8f, | |
| 258 0xad, 0x82, 0x4c, 0xd2, 0xdb, 0xf3, 0x6e, 0xb9, 0x8c, 0x81, 0x93, 0x21, | |
| 259 0x01, 0xf2, 0x0d, 0x08, 0x12, 0x7b, 0x04, 0x41, 0x04, 0x89, 0x19, 0x88, | |
| 260 0xe1, 0x58, 0x88, 0x20, 0x31, 0x03, 0x31, 0x1c, 0x0b, 0x11, 0x24, 0x66, | |
| 261 0x20, 0x86, 0x63, 0x21, 0x82, 0xc4, 0x0c, 0xc4, 0x70, 0x2c, 0x44, 0x90, | |
| 262 0x98, 0x81, 0x18, 0x8e, 0x85, 0x08, 0x12, 0x33, 0x10, 0xc3, 0xb1, 0x10, | |
| 263 0x41, 0x62, 0x06, 0x62, 0x38, 0x16, 0x22, 0x48, 0xcc, 0x40, 0x0c, 0xc7, | |
| 264 0x42, 0x04, 0x89, 0x19, 0x88, 0xe1, 0x58, 0x88, 0x20, 0x31, 0x03, 0x31, | |
| 265 0x1c, 0x0b, 0x11, 0x24, 0x66, 0x20, 0x86, 0x63, 0x21, 0x82, 0xc4, 0x0c, | |
| 266 0xc4, 0x70, 0x2c, 0x44, 0x90, 0x98, 0x81, 0x18, 0x8e, 0x85, 0x08, 0x12, | |
| 267 0x33, 0x10, 0xc3, 0xb1, 0x10, 0x41, 0x62, 0x06, 0x62, 0x38, 0x16, 0x22, | |
| 268 0x48, 0xcc, 0x40, 0x0c, 0xc7, 0x42, 0x04, 0x89, 0x19, 0x88, 0xe1, 0x58, | |
| 269 0x88, 0x20, 0x31, 0x03, 0x31, 0x1c, 0x0b, 0x11, 0x24, 0x66, 0x20, 0x86, | |
| 270 0x63, 0x21, 0x82, 0xc4, 0x0c, 0xc4, 0x70, 0x2c, 0x44, 0x90, 0x98, 0x81, | |
| 271 0x18, 0x8e, 0x85, 0x08, 0x12, 0x33, 0x10, 0xc3, 0xb1, 0x10, 0x41, 0x62, | |
| 272 0x06, 0x62, 0x38, 0x16, 0x22, 0x48, 0xcc, 0x40, 0x0c, 0xc7, 0x42, 0x04, | |
| 273 0x89, 0x19, 0x88, 0xe1, 0x58, 0x88, 0x20, 0x31, 0x03, 0x31, 0x1c, 0x0b, | |
| 274 0x11, 0x24, 0x66, 0x20, 0x86, 0x63, 0x21, 0x82, 0xc4, 0x0c, 0xc4, 0x70, | |
| 275 0x2c, 0x44, 0x90, 0x98, 0x81, 0x18, 0x8e, 0x85, 0x08, 0x12, 0x33, 0x10, | |
| 276 0xc3, 0xb1, 0x10, 0x41, 0x62, 0x06, 0x62, 0x38, 0x16, 0x22, 0x48, 0xcc, | |
| 277 0x40, 0x0c, 0xc7, 0x42, 0x04, 0x89, 0x19, 0x88, 0xe1, 0x58, 0x88, 0x20, | |
| 278 0x31, 0x03, 0x31, 0x1c, 0x0b, 0x11, 0x24, 0x66, 0x20, 0x86, 0x63, 0x21, | |
| 279 0x82, 0xc4, 0x0c, 0xc4, 0x70, 0x2c, 0x44, 0x90, 0x98, 0x81, 0x18, 0x8e, | |
| 280 0x85, 0x08, 0x12, 0x33, 0x10, 0xc3, 0xb1, 0x10, 0x41, 0x62, 0x06, 0x62, | |
| 281 0x38, 0x16, 0x22, 0x48, 0xcc, 0x40, 0x0c, 0xc7, 0x42, 0x04, 0x89, 0x19, | |
| 282 0x88, 0xe1, 0x58, 0x88, 0x20, 0x31, 0x03, 0x31, 0x1c, 0x0b, 0x11, 0x24, | |
| 283 0x66, 0x20, 0x86, 0x63, 0x21, 0x82, 0xc4, 0x0c, 0xc4, 0x70, 0x2c, 0x44, | |
| 284 0x90, 0x98, 0x81, 0x18, 0x8e, 0x85, 0x08, 0x12, 0x33, 0x10, 0xc3, 0xb1, | |
| 285 0x10, 0x41, 0x62, 0x06, 0x62, 0x38, 0x16, 0x22, 0x48, 0xcc, 0x40, 0x0c, | |
| 286 0xc7, 0x42, 0x62, 0x41, 0x2e, 0x08, 0x60, 0x04, 0xc4, 0x4c, 0x5d, 0x6e, | |
| 287 0xf2, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, | |
| 288 0x82 | |
| 289 }; | |
| 290 | |
| 291 static void make_bitmap_lazy(SkBitmap* bm) { | |
| 292 SkAutoTUnref<SkData> data(SkData::NewWithoutCopy(tiny_png, sizeof(tiny_png))
); | |
| 293 SkInstallDiscardablePixelRef(data, bm); | |
| 294 } | |
| 295 | 248 |
| 296 static void make_bitmap_mutable(SkBitmap* bm) { | 249 static void make_bitmap_mutable(SkBitmap* bm) { |
| 297 bm->allocN32Pixels(10, 10); | 250 bm->allocN32Pixels(10, 10); |
| 298 } | 251 } |
| 299 | 252 |
| 300 static void make_bitmap_immutable(SkBitmap* bm) { | 253 static void make_bitmap_immutable(SkBitmap* bm) { |
| 301 bm->allocN32Pixels(10, 10); | 254 bm->allocN32Pixels(10, 10); |
| 302 bm->setImmutable(); | 255 bm->setImmutable(); |
| 303 } | 256 } |
| 304 | 257 |
| 305 DEF_TEST(image_newfrombitmap, reporter) { | 258 DEF_TEST(image_newfrombitmap, reporter) { |
| 306 const struct { | 259 const struct { |
| 307 void (*fMakeProc)(SkBitmap*); | 260 void (*fMakeProc)(SkBitmap*); |
| 308 bool fExpectPeekSuccess; | 261 bool fExpectPeekSuccess; |
| 309 bool fExpectSharedID; | 262 bool fExpectSharedID; |
| 310 bool fExpectLazy; | 263 bool fExpectLazy; |
| 311 } rec[] = { | 264 } rec[] = { |
| 312 { make_bitmap_lazy, false, true, true }, | |
| 313 { make_bitmap_mutable, true, false, false }, | 265 { make_bitmap_mutable, true, false, false }, |
| 314 { make_bitmap_immutable, true, true, false }, | 266 { make_bitmap_immutable, true, true, false }, |
| 315 }; | 267 }; |
| 316 | 268 |
| 317 for (size_t i = 0; i < SK_ARRAY_COUNT(rec); ++i) { | 269 for (size_t i = 0; i < SK_ARRAY_COUNT(rec); ++i) { |
| 318 SkBitmap bm; | 270 SkBitmap bm; |
| 319 rec[i].fMakeProc(&bm); | 271 rec[i].fMakeProc(&bm); |
| 320 | 272 |
| 321 SkAutoTUnref<SkImage> image(SkImage::NewFromBitmap(bm)); | 273 SkAutoTUnref<SkImage> image(SkImage::NewFromBitmap(bm)); |
| 322 SkPixmap pmap; | 274 SkPixmap pmap; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 } | 338 } |
| 387 } | 339 } |
| 388 | 340 |
| 389 image.reset(nullptr); | 341 image.reset(nullptr); |
| 390 { | 342 { |
| 391 SkBitmap cachedBitmap; | 343 SkBitmap cachedBitmap; |
| 392 REPORTER_ASSERT(reporter, !SkBitmapCache::Find(uniqueID, &cachedBitmap))
; | 344 REPORTER_ASSERT(reporter, !SkBitmapCache::Find(uniqueID, &cachedBitmap))
; |
| 393 } | 345 } |
| 394 } | 346 } |
| 395 #endif | 347 #endif |
| OLD | NEW |