summaryrefslogtreecommitdiffstats
path: root/skia/ports/SkImageRef_ashmem.h
diff options
context:
space:
mode:
Diffstat (limited to 'skia/ports/SkImageRef_ashmem.h')
-rw-r--r--skia/ports/SkImageRef_ashmem.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/skia/ports/SkImageRef_ashmem.h b/skia/ports/SkImageRef_ashmem.h
new file mode 100644
index 0000000..909baea
--- /dev/null
+++ b/skia/ports/SkImageRef_ashmem.h
@@ -0,0 +1,33 @@
+#ifndef SkImageRef_ashmem_DEFINED
+#define SkImageRef_ashmem_DEFINED
+
+#include "SkImageRef.h"
+
+struct SkAshmemRec {
+ int fFD;
+ void* fAddr;
+ size_t fSize;
+ bool fPinned;
+};
+
+class SkImageRef_ashmem : public SkImageRef {
+public:
+ SkImageRef_ashmem(SkStream*, SkBitmap::Config, int sampleSize = 1);
+ virtual ~SkImageRef_ashmem();
+
+protected:
+ virtual bool onDecode(SkImageDecoder* codec, SkStream* stream,
+ SkBitmap* bitmap, SkBitmap::Config config,
+ SkImageDecoder::Mode mode);
+
+ virtual void* onLockPixels(SkColorTable**);
+ virtual void onUnlockPixels();
+
+private:
+ SkColorTable* fCT;
+ SkAshmemRec fRec;
+
+ typedef SkImageRef INHERITED;
+};
+
+#endif