Index: src/codec/SkCodecImageGenerator.h |
diff --git a/src/codec/SkCodecImageGenerator.h b/src/codec/SkCodecImageGenerator.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..80eacb19c885544c5e93bdec605e5725d91b5da5 |
--- /dev/null |
+++ b/src/codec/SkCodecImageGenerator.h |
@@ -0,0 +1,43 @@ |
+/* |
+ * Copyright 2015 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "SkCodec.h" |
+#include "SkData.h" |
+#include "SkImageGenerator.h" |
+ |
+class SkCodecImageGenerator : public SkImageGenerator { |
+public: |
+ /* |
+ * If this data represents an encoded image that we know how to decode, |
+ * return an SkCodecImageGenerator. Otherwise return nullptr. |
+ * |
+ * Refs the data if an image generator can be returned. Otherwise does |
+ * not affect the data. |
+ */ |
+ static SkImageGenerator* NewFromEncodedCodec(SkData* data); |
+ |
+protected: |
+ SkData* onRefEncodedData(SK_REFENCODEDDATA_CTXPARAM) override; |
+ |
+ bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, SkPMColor ctable[], |
+ int* ctableCount) override; |
+ |
+ bool onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3], |
+ SkYUVColorSpace* colorSpace) override; |
+ |
+private: |
+ /* |
+ * Takes ownership of codec |
+ * Refs the data |
+ */ |
+ SkCodecImageGenerator(SkCodec* codec, SkData* data); |
+ |
+ SkAutoTDelete<SkCodec> fCodec; |
+ SkAutoTUnref<SkData> fData; |
+ |
+ typedef SkImageGenerator INHERITED; |
+}; |