Home | History | Annotate | Download | only in utils
      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 "SkBitmapSourceDeserializer.h"
      9 
     10 #include "SkBitmap.h"
     11 #include "SkFilterQuality.h"
     12 #include "SkImage.h"
     13 #include "SkImageSource.h"
     14 #include "SkReadBuffer.h"
     15 
     16 sk_sp<SkFlattenable> SkBitmapSourceDeserializer::CreateProc(SkReadBuffer& buffer) {
     17     SkFilterQuality filterQuality;
     18     if (buffer.isVersionLT(SkReadBuffer::kBitmapSourceFilterQuality_Version)) {
     19         filterQuality = kHigh_SkFilterQuality;
     20     } else {
     21         filterQuality = (SkFilterQuality)buffer.readInt();
     22     }
     23     SkRect src, dst;
     24     buffer.readRect(&src);
     25     buffer.readRect(&dst);
     26     sk_sp<SkImage> image = buffer.readBitmapAsImage();
     27     if (image) {
     28         return SkImageSource::Make(std::move(image), src, dst, filterQuality);
     29     }
     30     return nullptr;
     31 }
     32