blob: 9ea6a94ecb953215c1d3974480601ee3683633b4 [file] [log] [blame]
scroggo6f5e6192015-06-18 12:53:43 -07001/*
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#ifndef SkWebpCodec_DEFINED
9#define SkWebpCodec_DEFINED
10
11#include "SkCodec.h"
12#include "SkEncodedFormat.h"
13#include "SkImageInfo.h"
14#include "SkTypes.h"
15
16class SkStream;
17
18class SkWebpCodec final : public SkCodec {
19public:
20 // Assumes IsWebp was called and returned true.
21 static SkCodec* NewFromStream(SkStream*);
22 static bool IsWebp(SkStream*);
23protected:
24 Result onGetPixels(const SkImageInfo&, void*, size_t, const Options&, SkPMColor*, int*)
25 override;
26 SkEncodedFormat onGetEncodedFormat() const override { return kWEBP_SkEncodedFormat; }
27
28 bool onReallyHasAlpha() const override {
29 return this->getInfo().alphaType() != kOpaque_SkAlphaType;
30 }
31
32 SkISize onGetScaledDimensions(float desiredScale) const override;
33private:
34 SkWebpCodec(const SkImageInfo&, SkStream*);
35
36 typedef SkCodec INHERITED;
37};
38#endif // SkWebpCodec_DEFINED