Lines Matching refs:sampleSize
207 // Necessary for decodes when the native decoder cannot scale to appropriately match the sampleSize
208 // (for example, RAW). If the sampleSize divides evenly into the dimension, we require that the
209 // scale matches exactly. If sampleSize does not divide evenly, we allow the decoder to choose how
211 static bool needsFineScale(const int fullSize, const int decodedSize, const int sampleSize) {
212 if (fullSize % sampleSize == 0 && fullSize / sampleSize != decodedSize) {
214 } else if ((fullSize / sampleSize + 1) != decodedSize &&
215 (fullSize / sampleSize) != decodedSize) {
222 const int sampleSize) {
223 return needsFineScale(fullSize.width(), decodedSize.width(), sampleSize) ||
224 needsFineScale(fullSize.height(), decodedSize.height(), sampleSize);
235 int sampleSize = 1;
245 sampleSize = env->GetIntField(options, gOptions_sampleSizeFieldID);
246 // Correct a non-positive sampleSize. sampleSize defaults to zero within the
248 if (sampleSize <= 0) {
249 sampleSize = 1;
295 SkISize size = codec->getSampledDimensions(sampleSize);
302 if (needsFineScale(codec->getInfo().dimensions(), size, sampleSize)) {
304 scaledWidth = codec->getInfo().width() / sampleSize;
305 scaledHeight = codec->getInfo().height() / sampleSize;
415 codecOptions.fSampleSize = sampleSize;