/* * 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; };