blob: a5327dda4155afc7085583148e661b3780e1cca0 [file] [log] [blame]
scroggof24f2242015-03-03 08:59:20 -08001/*
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 "SkCodec.h"
9#include "SkImageInfo.h"
10
11extern "C" {
12 // FIXME: I'd like to force all platforms to use the same decoder, but this
13 // means an extra dependency on Mac/Win.
14 #include "png.h"
15}
16
17class SkStream;
18
19class SkPngCodec : public SkCodec {
20public:
21 // Assumes IsPng was called and returned true.
22 static SkCodec* NewFromStream(SkStream*);
23 static bool IsPng(SkStream*);
24protected:
25 Result onGetPixels(const SkImageInfo&, void*, size_t, SkPMColor*, int*) SK_OVERRIDE;
26private:
27 png_structp fPng_ptr;
28 png_infop fInfo_ptr;
29
30 SkPngCodec(const SkImageInfo&, SkStream*, png_structp, png_infop);
31 ~SkPngCodec();
32
33 typedef SkCodec INHERITED;
34};