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

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

Issue 1288483002: Consolidate SkCodec functions for handling rewind (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 4 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
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 "SkCodec.h" 9 #include "SkCodec.h"
10 #include "SkData.h" 10 #include "SkData.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 } 76 }
77 77
78 SkCodec::SkCodec(const SkImageInfo& info, SkStream* stream) 78 SkCodec::SkCodec(const SkImageInfo& info, SkStream* stream)
79 : fInfo(info) 79 : fInfo(info)
80 , fStream(stream) 80 , fStream(stream)
81 , fNeedsRewind(false) 81 , fNeedsRewind(false)
82 {} 82 {}
83 83
84 SkCodec::~SkCodec() {} 84 SkCodec::~SkCodec() {}
85 85
86 SkCodec::RewindState SkCodec::rewindIfNeeded() { 86 bool SkCodec::rewindIfNeeded() {
87 // Store the value of fNeedsRewind so we can update it. Next read will 87 // Store the value of fNeedsRewind so we can update it. Next read will
88 // require a rewind. 88 // require a rewind.
89 const bool needsRewind = fNeedsRewind; 89 const bool needsRewind = fNeedsRewind;
90 fNeedsRewind = true; 90 fNeedsRewind = true;
91 if (!needsRewind) { 91 if (!needsRewind) {
92 return kNoRewindNecessary_RewindState; 92 return true;
93 } 93 }
94 return fStream->rewind() ? kRewound_RewindState 94
95 : kCouldNotRewind_RewindState; 95 if (!fStream->rewind()) {
96 return false;
97 }
98
99 return this->onRewind();
96 } 100 }
97 101
98 SkCodec::Result SkCodec::getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, 102 SkCodec::Result SkCodec::getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes,
99 const Options* options, SkPMColor ctable[], i nt* ctableCount) { 103 const Options* options, SkPMColor ctable[], i nt* ctableCount) {
100 if (kUnknown_SkColorType == info.colorType()) { 104 if (kUnknown_SkColorType == info.colorType()) {
101 return kInvalidConversion; 105 return kInvalidConversion;
102 } 106 }
103 if (NULL == pixels) { 107 if (NULL == pixels) {
104 return kInvalidParameters; 108 return kInvalidParameters;
105 } 109 }
(...skipping 22 matching lines...) Expand all
128 132
129 if ((kIncompleteInput == result || kSuccess == result) && ctableCount) { 133 if ((kIncompleteInput == result || kSuccess == result) && ctableCount) {
130 SkASSERT(*ctableCount >= 0 && *ctableCount <= 256); 134 SkASSERT(*ctableCount >= 0 && *ctableCount <= 256);
131 } 135 }
132 return result; 136 return result;
133 } 137 }
134 138
135 SkCodec::Result SkCodec::getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes) { 139 SkCodec::Result SkCodec::getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes) {
136 return this->getPixels(info, pixels, rowBytes, NULL, NULL, NULL); 140 return this->getPixels(info, pixels, rowBytes, NULL, NULL, NULL);
137 } 141 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698