Line data Source code
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 0 : sk_sp<SkFlattenable> SkBitmapSourceDeserializer::CreateProc(SkReadBuffer& buffer) {
17 : SkFilterQuality filterQuality;
18 0 : if (buffer.isVersionLT(SkReadBuffer::kBitmapSourceFilterQuality_Version)) {
19 0 : filterQuality = kHigh_SkFilterQuality;
20 : } else {
21 0 : filterQuality = (SkFilterQuality)buffer.readInt();
22 : }
23 : SkRect src, dst;
24 0 : buffer.readRect(&src);
25 0 : buffer.readRect(&dst);
26 0 : sk_sp<SkImage> image = buffer.readBitmapAsImage();
27 0 : if (image) {
28 0 : return SkImageSource::Make(std::move(image), src, dst, filterQuality);
29 : }
30 0 : return nullptr;
31 : }
|