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

Side by Side Diff: dm/DMSrcSink.cpp

Issue 1520403003: Prototype of RAW decoding in Skia. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Initial upload of the Prototype. Created 5 years 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 "DMSrcSink.h" 8 #include "DMSrcSink.h"
9 #include "SamplePipeControllers.h" 9 #include "SamplePipeControllers.h"
10 #include "SkAndroidCodec.h" 10 #include "SkAndroidCodec.h"
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 int subsetHeight = height / divisor; 622 int subsetHeight = height / divisor;
623 const int left = x * subsetWidth; 623 const int left = x * subsetWidth;
624 const int top = y * subsetHeight; 624 const int top = y * subsetHeight;
625 625
626 // Increase the size of the last subset in each row or colum n, when the 626 // Increase the size of the last subset in each row or colum n, when the
627 // divisor does not divide evenly into the image dimensions 627 // divisor does not divide evenly into the image dimensions
628 subsetWidth += (x + 1 == divisor) ? (width % divisor) : 0; 628 subsetWidth += (x + 1 == divisor) ? (width % divisor) : 0;
629 subsetHeight += (y + 1 == divisor) ? (height % divisor) : 0; 629 subsetHeight += (y + 1 == divisor) ? (height % divisor) : 0;
630 SkIRect subset = SkIRect::MakeXYWH(left, top, subsetWidth, s ubsetHeight); 630 SkIRect subset = SkIRect::MakeXYWH(left, top, subsetWidth, s ubsetHeight);
631 if (!codec->getSupportedSubset(&subset)) { 631 if (!codec->getSupportedSubset(&subset)) {
632 return "Could not get supported subset to decode."; 632 return Error::Nonfatal("Could not get supported subset t o decode.\n");
scroggo 2015/12/18 15:56:26 Actually, this is a real error. The subsets reques
yujieqin 2016/01/06 18:47:18 Done.
633 } 633 }
634 options.fSubset = ⊂ 634 options.fSubset = ⊂
635 const int scaledWidthOffset = subset.left() / fSampleSize; 635 const int scaledWidthOffset = subset.left() / fSampleSize;
636 const int scaledHeightOffset = subset.top() / fSampleSize; 636 const int scaledHeightOffset = subset.top() / fSampleSize;
637 void* pixels = bitmap.getAddr(scaledWidthOffset, scaledHeigh tOffset); 637 void* pixels = bitmap.getAddr(scaledWidthOffset, scaledHeigh tOffset);
638 SkISize scaledSubsetSize = codec->getSampledSubsetDimensions (fSampleSize, 638 SkISize scaledSubsetSize = codec->getSampledSubsetDimensions (fSampleSize,
639 subset); 639 subset);
640 SkImageInfo subsetDecodeInfo = decodeInfo.makeWH(scaledSubse tSize.width(), 640 SkImageInfo subsetDecodeInfo = decodeInfo.makeWH(scaledSubse tSize.width(),
641 scaledSubsetSize.height()); 641 scaledSubsetSize.height());
642 642
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
1268 skr.visit<void>(i, drawsAsSingletonPictures); 1268 skr.visit<void>(i, drawsAsSingletonPictures);
1269 } 1269 }
1270 SkAutoTUnref<SkPicture> macroPic(macroRec.endRecordingAsPicture()); 1270 SkAutoTUnref<SkPicture> macroPic(macroRec.endRecordingAsPicture());
1271 1271
1272 canvas->drawPicture(macroPic); 1272 canvas->drawPicture(macroPic);
1273 return ""; 1273 return "";
1274 }); 1274 });
1275 } 1275 }
1276 1276
1277 } // namespace DM 1277 } // namespace DM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698