| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2010, The Android Open Source Project | 2 * Copyright 2010, The Android Open Source Project |
| 3 * | 3 * |
| 4 * Licensed under the Apache License, Version 2.0 (the "License"); | 4 * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 * you may not use this file except in compliance with the License. | 5 * you may not use this file except in compliance with the License. |
| 6 * You may obtain a copy of the License at | 6 * You may obtain a copy of the License at |
| 7 * | 7 * |
| 8 * http://www.apache.org/licenses/LICENSE-2.0 | 8 * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 * | 9 * |
| 10 * Unless required by applicable law or agreed to in writing, software | 10 * Unless required by applicable law or agreed to in writing, software |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 #endif | 405 #endif |
| 406 | 406 |
| 407 int origWidth, origHeight, hasAlpha; | 407 int origWidth, origHeight, hasAlpha; |
| 408 if (!webp_parse_header(stream, &origWidth, &origHeight, &hasAlpha)) { | 408 if (!webp_parse_header(stream, &origWidth, &origHeight, &hasAlpha)) { |
| 409 return false; | 409 return false; |
| 410 } | 410 } |
| 411 this->fHasAlpha = hasAlpha; | 411 this->fHasAlpha = hasAlpha; |
| 412 | 412 |
| 413 const int sampleSize = this->getSampleSize(); | 413 const int sampleSize = this->getSampleSize(); |
| 414 SkScaledBitmapSampler sampler(origWidth, origHeight, sampleSize); | 414 SkScaledBitmapSampler sampler(origWidth, origHeight, sampleSize); |
| 415 | |
| 416 // If only bounds are requested, done | |
| 417 if (SkImageDecoder::kDecodeBounds_Mode == mode) { | |
| 418 if (!setDecodeConfig(decodedBitmap, sampler.scaledWidth(), | |
| 419 sampler.scaledHeight())) { | |
| 420 return false; | |
| 421 } | |
| 422 return true; | |
| 423 } | |
| 424 | |
| 425 // No Bitmap reuse supported for this format | |
| 426 if (!decodedBitmap->isNull()) { | |
| 427 return false; | |
| 428 } | |
| 429 if (!setDecodeConfig(decodedBitmap, sampler.scaledWidth(), | 415 if (!setDecodeConfig(decodedBitmap, sampler.scaledWidth(), |
| 430 sampler.scaledHeight())) { | 416 sampler.scaledHeight())) { |
| 431 return false; | 417 return false; |
| 432 } | 418 } |
| 433 | 419 |
| 420 // If only bounds are requested, done |
| 421 if (SkImageDecoder::kDecodeBounds_Mode == mode) { |
| 422 return true; |
| 423 } |
| 424 |
| 434 if (!this->allocPixelRef(decodedBitmap, NULL)) { | 425 if (!this->allocPixelRef(decodedBitmap, NULL)) { |
| 435 return return_false(*decodedBitmap, "allocPixelRef"); | 426 return return_false(*decodedBitmap, "allocPixelRef"); |
| 436 } | 427 } |
| 437 | 428 |
| 438 SkAutoLockPixels alp(*decodedBitmap); | 429 SkAutoLockPixels alp(*decodedBitmap); |
| 439 | 430 |
| 440 WebPDecoderConfig config; | 431 WebPDecoderConfig config; |
| 441 if (!webp_get_config_resize(&config, decodedBitmap, origWidth, origHeight, | 432 if (!webp_get_config_resize(&config, decodedBitmap, origWidth, origHeight, |
| 442 this->shouldPremultiply())) { | 433 this->shouldPremultiply())) { |
| 443 return false; | 434 return false; |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 602 return SkImageDecoder::kUnknown_Format; | 593 return SkImageDecoder::kUnknown_Format; |
| 603 } | 594 } |
| 604 | 595 |
| 605 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) { | 596 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) { |
| 606 return (SkImageEncoder::kWEBP_Type == t) ? SkNEW(SkWEBPImageEncoder) : NUL
L; | 597 return (SkImageEncoder::kWEBP_Type == t) ? SkNEW(SkWEBPImageEncoder) : NUL
L; |
| 607 } | 598 } |
| 608 | 599 |
| 609 static SkTRegistry<SkImageDecoder*, SkStream*> gDReg(sk_libwebp_dfactory); | 600 static SkTRegistry<SkImageDecoder*, SkStream*> gDReg(sk_libwebp_dfactory); |
| 610 static SkTRegistry<SkImageDecoder::Format, SkStream*> gFormatReg(get_format_webp
); | 601 static SkTRegistry<SkImageDecoder::Format, SkStream*> gFormatReg(get_format_webp
); |
| 611 static SkTRegistry<SkImageEncoder*, SkImageEncoder::Type> gEReg(sk_libwebp_efact
ory); | 602 static SkTRegistry<SkImageEncoder*, SkImageEncoder::Type> gEReg(sk_libwebp_efact
ory); |
| OLD | NEW |