BUG=skia:
R=bsalomon@google.com, halcanary@google.com
Review URL: https://codereview.chromium.org/
137263009
git-svn-id: http://skia.googlecode.com/svn/trunk@13219
2bbb7eff-a529-9590-31e7-
b0007b416f81
*
* Note: this changes the alphatype for the underlying pixels, which means
* that all bitmaps that might be sharing (subsets of) the pixels will
- * be affected. This is an expensive change for some backends (e.g. GPU)
- * since changing the alphatype can invalidate internal caches. Thus this
- * call should only be made if it is associated with real changes to the
- * pixel data.
+ * be affected.
*/
bool setAlphaType(SkAlphaType);
* Call this if you have changed the contents of the pixels. This will in-
* turn cause a different generation ID value to be returned from
* getGenerationID().
- *
- * If the alphatype has also changed, specify its new value as well. If
- * the new pixels' alphatype is the same, this can be called with no
- * parameter.
*/
- void notifyPixelsChanged(SkAlphaType);
- void notifyPixelsChanged() {
- this->notifyPixelsChanged(fInfo.fAlphaType);
- }
+ void notifyPixelsChanged();
+
+ /**
+ * Change the info's AlphaType. Note that this does not automatically
+ * invalidate the generation ID. If the pixel values themselves have
+ * changed, then you must explicitly call notifyPixelsChanged() as well.
+ */
+ void changeAlphaType(SkAlphaType at);
/** Returns true if this pixelref is marked as immutable, meaning that the
contents of its pixels will not change for the lifetime of the pixelref.
if (fAlphaType != alphaType) {
fAlphaType = SkToU8(alphaType);
if (fPixelRef) {
- fPixelRef->notifyPixelsChanged(alphaType);
+ fPixelRef->changeAlphaType(alphaType);
}
}
return true;
fGenIDChangeListeners.deleteAll();
}
-void SkPixelRef::notifyPixelsChanged(SkAlphaType at) {
+void SkPixelRef::notifyPixelsChanged() {
#ifdef SK_DEBUG
if (fIsImmutable) {
SkDebugf("========== notifyPixelsChanged called on immutable pixelref");
}
#endif
- *const_cast<SkAlphaType*>(&fInfo.fAlphaType) = at;
this->callGenIDChangeListeners();
this->needsNewGenID();
}
+void SkPixelRef::changeAlphaType(SkAlphaType at) {
+ *const_cast<SkAlphaType*>(&fInfo.fAlphaType) = at;
+}
+
void SkPixelRef::setImmutable() {
fIsImmutable = true;
}