Index: src/codec/SkMasks.h |
diff --git a/src/codec/SkMasks.h b/src/codec/SkMasks.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..31c684994017f3c174439f0005dde46238180562 |
--- /dev/null |
+++ b/src/codec/SkMasks.h |
@@ -0,0 +1,81 @@ |
+/* |
+ * 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 "SkTypes.h" |
+ |
+/* |
+ * |
+ * Contains useful mask routines for SkMaskSwizzler |
+ * |
+ */ |
+class SkMasks { |
+public: |
+ |
+ /* |
+ * |
+ * Input bit masks format |
+ * |
+ */ |
+ struct InputMasks { |
+ uint32_t red; |
+ uint32_t green; |
+ uint32_t blue; |
+ uint32_t alpha; |
+ }; |
+ |
+ /* |
+ * |
+ * Contains all of the information for a single mask |
+ * |
+ */ |
+ struct MaskInfo { |
+ uint32_t mask; |
+ uint32_t shift; |
+ uint32_t size; |
+ }; |
+ |
+ /* |
+ * |
+ * Create the masks object |
+ * |
+ */ |
+ static SkMasks* CreateMasks(InputMasks masks, uint32_t bpp); |
+ |
+ /* |
+ * |
+ * Get a color component |
+ * |
+ */ |
+ uint8_t getRed(uint32_t pixel); |
+ uint8_t getGreen(uint32_t pixel); |
+ uint8_t getBlue(uint32_t pixel); |
+ uint8_t getAlpha(uint32_t pixel); |
+ |
+ /* |
+ * |
+ * Getter for the alpha mask |
+ * The alpha mask may be used in other decoding modes |
+ * |
+ */ |
+ uint32_t getAlphaMask() { |
+ return fAlpha.mask; |
+ } |
+ |
+private: |
+ |
+ /* |
+ * |
+ * Constrcutor |
+ * |
+ */ |
+ SkMasks(const MaskInfo red, const MaskInfo green, const MaskInfo blue, |
+ const MaskInfo alpha); |
+ |
+ const MaskInfo fRed; |
+ const MaskInfo fGreen; |
+ const MaskInfo fBlue; |
+ const MaskInfo fAlpha; |
+}; |