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;) |