Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: src/codec/SkBmpCodec.cpp

Issue 1316233002: Style Change: NULL->nullptr (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2015-08-27 (Thursday) 10:25:06 EDT Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/codec/SkBmpCodec.h ('k') | src/codec/SkBmpMaskCodec.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "SkBmpCodec.h" 8 #include "SkBmpCodec.h"
9 #include "SkBmpMaskCodec.h" 9 #include "SkBmpMaskCodec.h"
10 #include "SkBmpRLECodec.h" 10 #include "SkBmpRLECodec.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 * Creates a bmp decoder for a bmp embedded in ico 77 * Creates a bmp decoder for a bmp embedded in ico
78 * Reads enough of the stream to determine the image format 78 * Reads enough of the stream to determine the image format
79 */ 79 */
80 SkCodec* SkBmpCodec::NewFromIco(SkStream* stream) { 80 SkCodec* SkBmpCodec::NewFromIco(SkStream* stream) {
81 return SkBmpCodec::NewFromStream(stream, true); 81 return SkBmpCodec::NewFromStream(stream, true);
82 } 82 }
83 83
84 /* 84 /*
85 * Read enough of the stream to initialize the SkBmpCodec. Returns a bool 85 * Read enough of the stream to initialize the SkBmpCodec. Returns a bool
86 * representing success or failure. If it returned true, and codecOut was 86 * representing success or failure. If it returned true, and codecOut was
87 * not NULL, it will be set to a new SkBmpCodec. 87 * not nullptr, it will be set to a new SkBmpCodec.
88 * Does *not* take ownership of the passed in SkStream. 88 * Does *not* take ownership of the passed in SkStream.
89 */ 89 */
90 bool SkBmpCodec::ReadHeader(SkStream* stream, bool inIco, SkCodec** codecOut) { 90 bool SkBmpCodec::ReadHeader(SkStream* stream, bool inIco, SkCodec** codecOut) {
91 // Header size constants 91 // Header size constants
92 static const uint32_t kBmpHeaderBytes = 14; 92 static const uint32_t kBmpHeaderBytes = 14;
93 static const uint32_t kBmpHeaderBytesPlusFour = kBmpHeaderBytes + 4; 93 static const uint32_t kBmpHeaderBytesPlusFour = kBmpHeaderBytes + 4;
94 static const uint32_t kBmpOS2V1Bytes = 12; 94 static const uint32_t kBmpOS2V1Bytes = 12;
95 static const uint32_t kBmpOS2V2Bytes = 64; 95 static const uint32_t kBmpOS2V2Bytes = 64;
96 static const uint32_t kBmpInfoBaseBytes = 16; 96 static const uint32_t kBmpInfoBaseBytes = 16;
97 static const uint32_t kBmpInfoV1Bytes = 40; 97 static const uint32_t kBmpInfoV1Bytes = 40;
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 case 32: 434 case 32:
435 break; 435 break;
436 default: 436 default:
437 SkCodecPrintf("Error: invalid input value for bits per pixel.\n"); 437 SkCodecPrintf("Error: invalid input value for bits per pixel.\n");
438 return false; 438 return false;
439 } 439 }
440 440
441 // Check that input bit masks are valid and create the masks object 441 // Check that input bit masks are valid and create the masks object
442 SkAutoTDelete<SkMasks> 442 SkAutoTDelete<SkMasks>
443 masks(SkMasks::CreateMasks(inputMasks, bitsPerPixel)); 443 masks(SkMasks::CreateMasks(inputMasks, bitsPerPixel));
444 if (NULL == masks) { 444 if (nullptr == masks) {
445 SkCodecPrintf("Error: invalid input masks.\n"); 445 SkCodecPrintf("Error: invalid input masks.\n");
446 return false; 446 return false;
447 } 447 }
448 448
449 // Check for a valid number of total bytes when in RLE mode 449 // Check for a valid number of total bytes when in RLE mode
450 if (totalBytes <= offset && kRLE_BmpInputFormat == inputFormat) { 450 if (totalBytes <= offset && kRLE_BmpInputFormat == inputFormat) {
451 SkCodecPrintf("Error: RLE requires valid input size.\n"); 451 SkCodecPrintf("Error: RLE requires valid input size.\n");
452 return false; 452 return false;
453 } 453 }
454 const size_t RLEBytes = totalBytes - offset; 454 const size_t RLEBytes = totalBytes - offset;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 507
508 return true; 508 return true;
509 } 509 }
510 510
511 /* 511 /*
512 * Creates a bmp decoder 512 * Creates a bmp decoder
513 * Reads enough of the stream to determine the image format 513 * Reads enough of the stream to determine the image format
514 */ 514 */
515 SkCodec* SkBmpCodec::NewFromStream(SkStream* stream, bool inIco) { 515 SkCodec* SkBmpCodec::NewFromStream(SkStream* stream, bool inIco) {
516 SkAutoTDelete<SkStream> streamDeleter(stream); 516 SkAutoTDelete<SkStream> streamDeleter(stream);
517 SkCodec* codec = NULL; 517 SkCodec* codec = nullptr;
518 if (ReadHeader(stream, inIco, &codec)) { 518 if (ReadHeader(stream, inIco, &codec)) {
519 // codec has taken ownership of stream, so we do not need to 519 // codec has taken ownership of stream, so we do not need to
520 // delete it. 520 // delete it.
521 SkASSERT(codec); 521 SkASSERT(codec);
522 streamDeleter.detach(); 522 streamDeleter.detach();
523 return codec; 523 return codec;
524 } 524 }
525 return NULL; 525 return nullptr;
526 } 526 }
527 527
528 SkBmpCodec::SkBmpCodec(const SkImageInfo& info, SkStream* stream, 528 SkBmpCodec::SkBmpCodec(const SkImageInfo& info, SkStream* stream,
529 uint16_t bitsPerPixel, RowOrder rowOrder) 529 uint16_t bitsPerPixel, RowOrder rowOrder)
530 : INHERITED(info, stream) 530 : INHERITED(info, stream)
531 , fBitsPerPixel(bitsPerPixel) 531 , fBitsPerPixel(bitsPerPixel)
532 , fRowOrder(rowOrder) 532 , fRowOrder(rowOrder)
533 {} 533 {}
534 534
535 bool SkBmpCodec::onRewind() { 535 bool SkBmpCodec::onRewind() {
536 return SkBmpCodec::ReadHeader(this->stream(), this->inIco(), NULL); 536 return SkBmpCodec::ReadHeader(this->stream(), this->inIco(), nullptr);
537 } 537 }
538 538
539 /* 539 /*
540 * Get the destination row to start filling from 540 * Get the destination row to start filling from
541 * Used to fill the remainder of the image on incomplete input for bmps 541 * Used to fill the remainder of the image on incomplete input for bmps
542 * This is tricky since bmps may be kTopDown or kBottomUp. For kTopDown, 542 * This is tricky since bmps may be kTopDown or kBottomUp. For kTopDown,
543 * we start filling from where we left off, but for kBottomUp we start 543 * we start filling from where we left off, but for kBottomUp we start
544 * filling at the top of the image. 544 * filling at the top of the image.
545 */ 545 */
546 void* SkBmpCodec::getDstStartRow(void* dst, size_t dstRowBytes, int32_t y) const { 546 void* SkBmpCodec::getDstStartRow(void* dst, size_t dstRowBytes, int32_t y) const {
547 return (kTopDown_RowOrder == fRowOrder) ? SkTAddOffset<void*>(dst, y * dstRo wBytes) : dst; 547 return (kTopDown_RowOrder == fRowOrder) ? SkTAddOffset<void*>(dst, y * dstRo wBytes) : dst;
548 } 548 }
549 549
550 /* 550 /*
551 * Compute the number of colors in the color table 551 * Compute the number of colors in the color table
552 */ 552 */
553 uint32_t SkBmpCodec::computeNumColors(uint32_t numColors) { 553 uint32_t SkBmpCodec::computeNumColors(uint32_t numColors) {
554 // Zero is a default for maxColors 554 // Zero is a default for maxColors
555 // Also set numColors to maxColors when it is too large 555 // Also set numColors to maxColors when it is too large
556 uint32_t maxColors = 1 << fBitsPerPixel; 556 uint32_t maxColors = 1 << fBitsPerPixel;
557 if (numColors == 0 || numColors >= maxColors) { 557 if (numColors == 0 || numColors >= maxColors) {
558 return maxColors; 558 return maxColors;
559 } 559 }
560 return numColors; 560 return numColors;
561 } 561 }
OLDNEW
« no previous file with comments | « src/codec/SkBmpCodec.h ('k') | src/codec/SkBmpMaskCodec.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698