| Index: include/core/SkColorTable.h
|
| diff --git a/include/core/SkColorTable.h b/include/core/SkColorTable.h
|
| index f8d1ccf07b7a45325c7dcf7e01347316befa8724..c6e31b94d421e7f7c18ea2f458640b70bc62b719 100644
|
| --- a/include/core/SkColorTable.h
|
| +++ b/include/core/SkColorTable.h
|
| @@ -10,6 +10,7 @@
|
| #ifndef SkColorTable_DEFINED
|
| #define SkColorTable_DEFINED
|
|
|
| +#include "SkAlpha.h"
|
| #include "SkColor.h"
|
| #include "SkFlattenable.h"
|
|
|
| @@ -25,25 +26,15 @@ public:
|
| /** Makes a deep copy of colors.
|
| */
|
| SkColorTable(const SkColorTable& src);
|
| - /** Preallocates the colortable to have 'count' colors, which
|
| - * are initially set to 0.
|
| - */
|
| - explicit SkColorTable(int count);
|
| - SkColorTable(const SkPMColor colors[], int count);
|
| + SkColorTable(const SkPMColor colors[], int count,
|
| + SkAlphaType alphaType = kPremul_SkAlphaType);
|
| virtual ~SkColorTable();
|
|
|
| - enum Flags {
|
| - kColorsAreOpaque_Flag = 0x01 //!< if set, all of the colors in the table are opaque (alpha==0xFF)
|
| - };
|
| - /** Returns the flag bits for the color table. These can be changed with setFlags().
|
| - */
|
| - unsigned getFlags() const { return fFlags; }
|
| - /** Set the flags for the color table. See the Flags enum for possible values.
|
| - */
|
| - void setFlags(unsigned flags);
|
| + SkAlphaType alphaType() const { return (SkAlphaType)fAlphaType; }
|
|
|
| - bool isOpaque() const { return (fFlags & kColorsAreOpaque_Flag) != 0; }
|
| - void setIsOpaque(bool isOpaque);
|
| + bool isOpaque() const {
|
| + return SkAlphaTypeIsOpaque(this->alphaType());
|
| + }
|
|
|
| /** Returns the number of colors in the table.
|
| */
|
| @@ -57,25 +48,19 @@ public:
|
| return fColors[index];
|
| }
|
|
|
| - /** Specify the number of colors in the color table. This does not initialize the colors
|
| - to any value, just allocates memory for them. To initialize the values, either call
|
| - setColors(array, count), or follow setCount(count) with a call to
|
| - lockColors()/{set the values}/unlockColors(true).
|
| - */
|
| -// void setColors(int count) { this->setColors(NULL, count); }
|
| -// void setColors(const SkPMColor[], int count);
|
| -
|
| - /** Return the array of colors for reading and/or writing. This must be
|
| - balanced by a call to unlockColors(changed?), telling the colortable if
|
| - the colors were changed during the lock.
|
| - */
|
| - SkPMColor* lockColors() {
|
| + /**
|
| + * Return the array of colors for reading. This must be balanced by a call
|
| + * to unlockColors().
|
| + */
|
| + const SkPMColor* lockColors() {
|
| SkDEBUGCODE(sk_atomic_inc(&fColorLockCount);)
|
| return fColors;
|
| }
|
| - /** Balancing call to lockColors(). If the colors have been changed, pass true.
|
| - */
|
| - void unlockColors(bool changed);
|
| +
|
| + /**
|
| + * Balancing call to lockColors().
|
| + */
|
| + void unlockColors();
|
|
|
| /** Similar to lockColors(), lock16BitCache() returns the array of
|
| RGB16 colors that mirror the 32bit colors. However, this function
|
| @@ -100,7 +85,7 @@ private:
|
| SkPMColor* fColors;
|
| uint16_t* f16BitCache;
|
| uint16_t fCount;
|
| - uint8_t fFlags;
|
| + uint8_t fAlphaType;
|
| SkDEBUGCODE(int fColorLockCount;)
|
| SkDEBUGCODE(int f16BitCacheLockCount;)
|
|
|
|
|