| 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 "Resources.h" | 8 #include "Resources.h" |
| 9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
| 10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 SkFILEStream stream(fullName.c_str()); | 271 SkFILEStream stream(fullName.c_str()); |
| 272 | 272 |
| 273 if (!stream.isValid()) { | 273 if (!stream.isValid()) { |
| 274 SkDebugf("file %s missing from resource directoy %s\n", | 274 SkDebugf("file %s missing from resource directoy %s\n", |
| 275 basename.c_str(), resourcePath.c_str()); | 275 basename.c_str(), resourcePath.c_str()); |
| 276 continue; | 276 continue; |
| 277 } | 277 } |
| 278 | 278 |
| 279 // This should never fail since we know the images we're decoding. | 279 // This should never fail since we know the images we're decoding. |
| 280 SkAutoTDelete<SkImageDecoder> decoder(SkImageDecoder::Factory(&stream)); | 280 SkAutoTDelete<SkImageDecoder> decoder(SkImageDecoder::Factory(&stream)); |
| 281 REPORTER_ASSERT(reporter, NULL != decoder.get()); | 281 REPORTER_ASSERT(reporter, decoder.get()); |
| 282 if (NULL == decoder.get()) { | 282 if (NULL == decoder.get()) { |
| 283 continue; | 283 continue; |
| 284 } | 284 } |
| 285 | 285 |
| 286 // Test unpremultiplied. We know what color this should result in. | 286 // Test unpremultiplied. We know what color this should result in. |
| 287 decoder->setRequireUnpremultipliedColors(true); | 287 decoder->setRequireUnpremultipliedColors(true); |
| 288 bool success = decoder->decode(&stream, &bm, kN32_SkColorType, | 288 bool success = decoder->decode(&stream, &bm, kN32_SkColorType, |
| 289 SkImageDecoder::kDecodePixels_Mode); | 289 SkImageDecoder::kDecodePixels_Mode); |
| 290 REPORTER_ASSERT(reporter, success); | 290 REPORTER_ASSERT(reporter, success); |
| 291 if (!success) { | 291 if (!success) { |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 * A test for the SkDecodingImageGenerator::Create and | 503 * A test for the SkDecodingImageGenerator::Create and |
| 504 * SkInstallDiscardablePixelRef functions. | 504 * SkInstallDiscardablePixelRef functions. |
| 505 */ | 505 */ |
| 506 DEF_TEST(ImprovedBitmapFactory, reporter) { | 506 DEF_TEST(ImprovedBitmapFactory, reporter) { |
| 507 SkString pngFilename = GetResourcePath("randPixels.png"); | 507 SkString pngFilename = GetResourcePath("randPixels.png"); |
| 508 SkAutoTUnref<SkStreamRewindable> stream(SkStream::NewFromFile(pngFilename.c_
str())); | 508 SkAutoTUnref<SkStreamRewindable> stream(SkStream::NewFromFile(pngFilename.c_
str())); |
| 509 if (sk_exists(pngFilename.c_str())) { | 509 if (sk_exists(pngFilename.c_str())) { |
| 510 SkBitmap bm; | 510 SkBitmap bm; |
| 511 SkAssertResult(bm.setInfo(SkImageInfo::MakeN32Premul(1, 1))); | 511 SkAssertResult(bm.setInfo(SkImageInfo::MakeN32Premul(1, 1))); |
| 512 REPORTER_ASSERT(reporter, | 512 REPORTER_ASSERT(reporter, |
| 513 NULL != install_pixel_ref(&bm, stream.detach(), 1, true)); | 513 install_pixel_ref(&bm, stream.detach(), 1, true)); |
| 514 SkAutoLockPixels alp(bm); | 514 SkAutoLockPixels alp(bm); |
| 515 REPORTER_ASSERT(reporter, NULL != bm.getPixels()); | 515 REPORTER_ASSERT(reporter, bm.getPixels()); |
| 516 } | 516 } |
| 517 } | 517 } |
| 518 | 518 |
| 519 | 519 |
| 520 //////////////////////////////////////////////////////////////////////////////// | 520 //////////////////////////////////////////////////////////////////////////////// |
| 521 | 521 |
| 522 #if defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) | 522 #if defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) |
| 523 static inline bool check_rounding(int value, int dividend, int divisor) { | 523 static inline bool check_rounding(int value, int dividend, int divisor) { |
| 524 // returns true if the value is greater than floor(dividend/divisor) | 524 // returns true if the value is greater than floor(dividend/divisor) |
| 525 // and less than SkNextPow2(ceil(dividend - divisor)) | 525 // and less than SkNextPow2(ceil(dividend - divisor)) |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 ((void*)pixels.get(), sizeof(uint16_t) * pixelCount))); | 810 ((void*)pixels.get(), sizeof(uint16_t) * pixelCount))); |
| 811 decoder->setAllocator(allocator); | 811 decoder->setAllocator(allocator); |
| 812 decoder->setSampleSize(2); | 812 decoder->setSampleSize(2); |
| 813 SkBitmap bitmap; | 813 SkBitmap bitmap; |
| 814 bool success = decoder->decode(stream, &bitmap, kRGB_565_SkColorType, | 814 bool success = decoder->decode(stream, &bitmap, kRGB_565_SkColorType, |
| 815 SkImageDecoder::kDecodePixels_Mode); | 815 SkImageDecoder::kDecodePixels_Mode); |
| 816 REPORTER_ASSERT(r, success); | 816 REPORTER_ASSERT(r, success); |
| 817 REPORTER_ASSERT(r, !allocator->ready()); // Decoder used correct memory | 817 REPORTER_ASSERT(r, !allocator->ready()); // Decoder used correct memory |
| 818 REPORTER_ASSERT(r, sentinal == pixels[pixelCount]); | 818 REPORTER_ASSERT(r, sentinal == pixels[pixelCount]); |
| 819 } | 819 } |
| OLD | NEW |