| Index: src/images/SkDecodingImageGenerator.h
|
| diff --git a/src/images/SkDecodingImageGenerator.h b/src/images/SkDecodingImageGenerator.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d897bee80dd4c3d83d8846738958752880216a7a
|
| --- /dev/null
|
| +++ b/src/images/SkDecodingImageGenerator.h
|
| @@ -0,0 +1,69 @@
|
| +/*
|
| + * Copyright 2013 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef SkDecodingImageGenerator_DEFINED
|
| +#define SkDecodingImageGenerator_DEFINED
|
| +
|
| +#include "SkImageGenerator.h"
|
| +
|
| +class SkBitmap;
|
| +
|
| +/**
|
| + * Calls into SkImageDecoder::DecodeMemoryToTarget to implement a
|
| + * SkImageGenerator
|
| + */
|
| +class SkDecodingImageGenerator : public SkImageGenerator {
|
| +public:
|
| + /*
|
| + * The constructor will take a reference to the SkData.
|
| + */
|
| + SkDecodingImageGenerator(SkData* data);
|
| + virtual ~SkDecodingImageGenerator();
|
| +
|
| + /**
|
| + * Return a ref to the encoded (i.e. compressed) representation,
|
| + * of this data. The caller is responsible for calling unref()
|
| + * on the data when it is finished.
|
| + */
|
| + virtual SkData* refEncodedData() SK_OVERRIDE;
|
| +
|
| + /**
|
| + * Return some information about the image, allowing the owner fo
|
| + * this ojbect to allocate pixels.
|
| + *
|
| + * @return false if anything goes wrong.
|
| + */
|
| + virtual bool getInfo(SkImageInfo* info) SK_OVERRIDE;
|
| +
|
| + /**
|
| + * Decode into the given pixels, a block of memory of size at
|
| + * least (info.fHeight - 1) * rowBytes + (info.fWidth *
|
| + * bytesPerPixel)
|
| + *
|
| + * @param info Should be identical to the info returned by
|
| + * getInfo so that the implementation can confirm that the
|
| + * caller knows what it is asking for (config, size).
|
| + * This contract also allows the caller to specify
|
| + * different output-configs, which the implementation can
|
| + * decide to support or not.
|
| + *
|
| + * @return false if anything goes wrong.
|
| + */
|
| + virtual bool getPixels(const SkImageInfo& info,
|
| + void* pixels,
|
| + size_t rowBytes) SK_OVERRIDE;
|
| +
|
| + /**
|
| + * Install the SkData into the destination bitmap, using a new
|
| + * SkDiscardablePixelRef and a new SkDecodingImageGenerator.
|
| + */
|
| + static bool Install(SkData* data, SkBitmap* destination);
|
| +
|
| +private:
|
| + SkData* fData;
|
| +};
|
| +#endif // SkDecodingImageGenerator_DEFINED
|
|
|