1 /* 2 * Copyright 2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "SkBitmap.h" 9 #include "SkBitmapRegionDecoder.h" 10 #include "SkAndroidCodec.h" 11 12 /* 13 * This class implements SkBitmapRegionDecoder using an SkAndroidCodec. 14 */ 15 class SkBitmapRegionCodec : public SkBitmapRegionDecoder { 16 public: 17 18 /* 19 * Takes ownership of pointer to codec 20 */ 21 SkBitmapRegionCodec(SkAndroidCodec* codec); 22 23 bool decodeRegion(SkBitmap* bitmap, SkBRDAllocator* allocator, 24 const SkIRect& desiredSubset, int sampleSize, 25 SkColorType colorType, bool requireUnpremul) override; 26 27 bool conversionSupported(SkColorType colorType) override; 28 getEncodedFormat()29 SkEncodedFormat getEncodedFormat() override { return fCodec->getEncodedFormat(); } 30 31 private: 32 33 SkAutoTDelete<SkAndroidCodec> fCodec; 34 35 typedef SkBitmapRegionDecoder INHERITED; 36 37 }; 38