diff options
Diffstat (limited to 'src/images/SkEncoder.h')
-rw-r--r-- | src/images/SkEncoder.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/images/SkEncoder.h b/src/images/SkEncoder.h new file mode 100644 index 0000000000..e2686adb27 --- /dev/null +++ b/src/images/SkEncoder.h @@ -0,0 +1,41 @@ +/* + * Copyright 2017 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkEncoder_DEFINED +#define SkEncoder_DEFINED + +#include "SkPixmap.h" +#include "SkTemplates.h" + +class SkEncoder : SkNoncopyable { +public: + + /** + * Encode |numRows| rows of input. If the caller requests more rows than are remaining + * in the src, this will encode all of the remaining rows. |numRows| must be greater + * than zero. + */ + bool encodeRows(int numRows); + + virtual ~SkEncoder() {} + +protected: + + virtual bool onEncodeRows(int numRows) = 0; + + SkEncoder(const SkPixmap& src, size_t storageBytes) + : fSrc(src) + , fCurrRow(0) + , fStorage(storageBytes) + {} + + const SkPixmap& fSrc; + int fCurrRow; + SkAutoTMalloc<uint8_t> fStorage; +}; + +#endif |