| Index: src/codec/SkMasks.h
|
| diff --git a/src/codec/SkMasks.h b/src/codec/SkMasks.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3240262bdddb0d15661ae2eabc36dd23b7e48548
|
| --- /dev/null
|
| +++ b/src/codec/SkMasks.h
|
| @@ -0,0 +1,88 @@
|
| +/*
|
| + * 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;
|
| + };
|
| +
|
| + /*
|
| + *
|
| + * 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:
|
| +
|
| + /*
|
| + *
|
| + * Contains all of the information for a single mask
|
| + *
|
| + */
|
| + struct MaskInfo {
|
| + uint32_t mask;
|
| + uint32_t shift;
|
| + uint32_t size;
|
| + };
|
| +
|
| + /*
|
| + *
|
| + * Process an input mask
|
| + *
|
| + */
|
| + static const MaskInfo ProcessMask(uint32_t mask, uint32_t bpp);
|
| +
|
| + /*
|
| + *
|
| + * 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;
|
| +};
|
|
|