Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Unified Diff: src/core/SkPaint.cpp

Issue 239163002: WIP -- separate out Parts from SkPaint (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: links and runs Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/core/SkPaintParts.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkPaint.cpp
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 241175e4e08f044cf7e65410c05e581775dab07a..21ba47109488d50cb3f2e2c3c7332e70fbb111e6 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -35,6 +35,34 @@
#include "SkTypeface.h"
#include "SkXfermode.h"
+#define SkPaintParts_SafeAssign(field, value) SkRefCnt_SafeAssign(fParts.field, value)
+
+bool SkPaintParts::operator==(const SkPaintParts& other) const {
+#define EQUAL(field) (this->field == other.field)
+ return EQUAL(fTypeface)
+ && EQUAL(fPathEffect)
+ && EQUAL(fShader)
+ && EQUAL(fXfermode)
+ && EQUAL(fMaskFilter)
+ && EQUAL(fColorFilter)
+ && EQUAL(fRasterizer)
+ && EQUAL(fLooper)
+ && EQUAL(fImageFilter)
+ && EQUAL(fAnnotation)
+ && EQUAL(fTextSize)
+ && EQUAL(fTextScaleX)
+ && EQUAL(fTextSkewX)
+ && EQUAL(fColor)
+ && EQUAL(fWidth)
+ && EQUAL(fMiterLimit)
+ && EQUAL(fBitfields)
+ ;
+#undef EQUAL
+}
+
+///////////
+
+
enum {
kColor_DirtyBit = 1 << 0,
kTextSize_DirtyBit = 1 << 1,
@@ -71,33 +99,20 @@ enum {
#endif
SkPaint::SkPaint() {
- fTypeface = NULL;
- fPathEffect = NULL;
- fShader = NULL;
- fXfermode = NULL;
- fMaskFilter = NULL;
- fColorFilter = NULL;
- fRasterizer = NULL;
- fLooper = NULL;
- fImageFilter = NULL;
- fAnnotation = NULL;
-
- fTextSize = SkPaintDefaults_TextSize;
- fTextScaleX = SK_Scalar1;
- fTextSkewX = 0;
- fColor = SK_ColorBLACK;
- fWidth = 0;
- fMiterLimit = SkPaintDefaults_MiterLimit;
-
- // Zero all bitfields, then set some non-zero defaults.
- fBitfields = 0;
- fFlags = SkPaintDefaults_Flags;
- fCapType = kDefault_Cap;
- fJoinType = kDefault_Join;
- fTextAlign = kLeft_Align;
- fStyle = kFill_Style;
- fTextEncoding = kUTF8_TextEncoding;
- fHinting = SkPaintDefaults_Hinting;
+ // set any non-zero values in fParts
+
+ fParts.fTextSize = SkPaintDefaults_TextSize;
+ fParts.fTextScaleX = SK_Scalar1;
+ fParts.fColor = SK_ColorBLACK;
+ fParts.fMiterLimit = SkPaintDefaults_MiterLimit;
+
+ fParts.fFlags = SkPaintDefaults_Flags;
+ fParts.fCapType = SkPaintParts::kDefault_Cap;
+ fParts.fJoinType = SkPaintParts::kDefault_Join;
+ fParts.fTextAlign = SkPaintParts::kLeft_Align;
+ fParts.fStyle = SkPaintParts::kFill_Style;
+ fParts.fTextEncoding = kUTF8_TextEncoding;
+ fParts.fHinting = SkPaintDefaults_Hinting;
fDirtyBits = 0;
#ifdef SK_BUILD_FOR_ANDROID
@@ -107,8 +122,8 @@ SkPaint::SkPaint() {
}
SkPaint::SkPaint(const SkPaint& src) {
-#define COPY(field) field = src.field
-#define REF_COPY(field) field = SkSafeRef(src.field)
+#define COPY(field) fParts.field = src.fParts.field
+#define REF_COPY(field) fParts.field = SkSafeRef(src.fParts.field)
REF_COPY(fTypeface);
REF_COPY(fPathEffect);
@@ -128,7 +143,8 @@ SkPaint::SkPaint(const SkPaint& src) {
COPY(fWidth);
COPY(fMiterLimit);
COPY(fBitfields);
- COPY(fDirtyBits);
+
+ fDirtyBits = src.fDirtyBits;
#ifdef SK_BUILD_FOR_ANDROID
new (&fPaintOptionsAndroid) SkPaintOptionsAndroid(src.fPaintOptionsAndroid);
@@ -140,21 +156,21 @@ SkPaint::SkPaint(const SkPaint& src) {
}
SkPaint::~SkPaint() {
- SkSafeUnref(fTypeface);
- SkSafeUnref(fPathEffect);
- SkSafeUnref(fShader);
- SkSafeUnref(fXfermode);
- SkSafeUnref(fMaskFilter);
- SkSafeUnref(fColorFilter);
- SkSafeUnref(fRasterizer);
- SkSafeUnref(fLooper);
- SkSafeUnref(fImageFilter);
- SkSafeUnref(fAnnotation);
+ SkSafeUnref(fParts.fTypeface);
+ SkSafeUnref(fParts.fPathEffect);
+ SkSafeUnref(fParts.fShader);
+ SkSafeUnref(fParts.fXfermode);
+ SkSafeUnref(fParts.fMaskFilter);
+ SkSafeUnref(fParts.fColorFilter);
+ SkSafeUnref(fParts.fRasterizer);
+ SkSafeUnref(fParts.fLooper);
+ SkSafeUnref(fParts.fImageFilter);
+ SkSafeUnref(fParts.fAnnotation);
}
SkPaint& SkPaint::operator=(const SkPaint& src) {
-#define COPY(field) field = src.field
-#define REF_COPY(field) SkSafeUnref(field); field = SkSafeRef(src.field)
+#define COPY(field) fParts.field = src.fParts.field
+#define REF_COPY(field) SkSafeUnref(fParts.field); fParts.field = SkSafeRef(src.fParts.field)
SkASSERT(&src);
@@ -176,7 +192,8 @@ SkPaint& SkPaint::operator=(const SkPaint& src) {
COPY(fWidth);
COPY(fMiterLimit);
COPY(fBitfields);
- COPY(fDirtyBits);
+
+ fDirtyBits = src.fDirtyBits;
#ifdef SK_BUILD_FOR_ANDROID
fPaintOptionsAndroid.~SkPaintOptionsAndroid();
@@ -191,30 +208,15 @@ SkPaint& SkPaint::operator=(const SkPaint& src) {
}
bool operator==(const SkPaint& a, const SkPaint& b) {
-#define EQUAL(field) (a.field == b.field)
- // Don't check fGenerationID or fDirtyBits, which can be different for logically equal paints.
- return EQUAL(fTypeface)
- && EQUAL(fPathEffect)
- && EQUAL(fShader)
- && EQUAL(fXfermode)
- && EQUAL(fMaskFilter)
- && EQUAL(fColorFilter)
- && EQUAL(fRasterizer)
- && EQUAL(fLooper)
- && EQUAL(fImageFilter)
- && EQUAL(fAnnotation)
- && EQUAL(fTextSize)
- && EQUAL(fTextScaleX)
- && EQUAL(fTextSkewX)
- && EQUAL(fColor)
- && EQUAL(fWidth)
- && EQUAL(fMiterLimit)
- && EQUAL(fBitfields)
+ if (a.fParts != b.fParts) {
+ return false;
+ }
#ifdef SK_BUILD_FOR_ANDROID
- && EQUAL(fPaintOptionsAndroid)
+ if (fPaintOptionsAndroid != b.fPaintOptionsAndroid) {
+ return false;
+ }
#endif
- ;
-#undef EQUAL
+ return true;
}
void SkPaint::reset() {
@@ -255,75 +257,75 @@ void SkPaint::setPaintOptionsAndroid(const SkPaintOptionsAndroid& options) {
void SkPaint::setFilterLevel(FilterLevel level) {
GEN_ID_INC_EVAL((unsigned) level != fFilterLevel);
- fFilterLevel = level;
+ fParts.setFilterLevel(static_cast<SkPaintParts::FilterLevel>(level));
}
void SkPaint::setHinting(Hinting hintingLevel) {
GEN_ID_INC_EVAL((unsigned) hintingLevel != fHinting);
- fHinting = hintingLevel;
+ fParts.setHinting(static_cast<SkPaintParts::Hinting>(hintingLevel));
}
void SkPaint::setFlags(uint32_t flags) {
GEN_ID_INC_EVAL(fFlags != flags);
- fFlags = flags;
+ fParts.setFlags(flags);
}
void SkPaint::setAntiAlias(bool doAA) {
- this->setFlags(SkSetClearMask(fFlags, doAA, kAntiAlias_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doAA, kAntiAlias_Flag));
}
void SkPaint::setDither(bool doDither) {
- this->setFlags(SkSetClearMask(fFlags, doDither, kDither_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doDither, kDither_Flag));
}
void SkPaint::setSubpixelText(bool doSubpixel) {
- this->setFlags(SkSetClearMask(fFlags, doSubpixel, kSubpixelText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doSubpixel, kSubpixelText_Flag));
}
void SkPaint::setLCDRenderText(bool doLCDRender) {
- this->setFlags(SkSetClearMask(fFlags, doLCDRender, kLCDRenderText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doLCDRender, kLCDRenderText_Flag));
}
void SkPaint::setEmbeddedBitmapText(bool doEmbeddedBitmapText) {
- this->setFlags(SkSetClearMask(fFlags, doEmbeddedBitmapText, kEmbeddedBitmapText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doEmbeddedBitmapText, kEmbeddedBitmapText_Flag));
}
void SkPaint::setAutohinted(bool useAutohinter) {
- this->setFlags(SkSetClearMask(fFlags, useAutohinter, kAutoHinting_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), useAutohinter, kAutoHinting_Flag));
}
void SkPaint::setLinearText(bool doLinearText) {
- this->setFlags(SkSetClearMask(fFlags, doLinearText, kLinearText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doLinearText, kLinearText_Flag));
}
void SkPaint::setVerticalText(bool doVertical) {
- this->setFlags(SkSetClearMask(fFlags, doVertical, kVerticalText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doVertical, kVerticalText_Flag));
}
void SkPaint::setUnderlineText(bool doUnderline) {
- this->setFlags(SkSetClearMask(fFlags, doUnderline, kUnderlineText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doUnderline, kUnderlineText_Flag));
}
void SkPaint::setStrikeThruText(bool doStrikeThru) {
- this->setFlags(SkSetClearMask(fFlags, doStrikeThru, kStrikeThruText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doStrikeThru, kStrikeThruText_Flag));
}
void SkPaint::setFakeBoldText(bool doFakeBold) {
- this->setFlags(SkSetClearMask(fFlags, doFakeBold, kFakeBoldText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doFakeBold, kFakeBoldText_Flag));
}
void SkPaint::setDevKernText(bool doDevKern) {
- this->setFlags(SkSetClearMask(fFlags, doDevKern, kDevKernText_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doDevKern, kDevKernText_Flag));
}
void SkPaint::setDistanceFieldTextTEMP(bool doDistanceFieldText) {
- this->setFlags(SkSetClearMask(fFlags, doDistanceFieldText, kDistanceFieldTextTEMP_Flag));
+ this->setFlags(SkSetClearMask(fParts.getFlags(), doDistanceFieldText, kDistanceFieldTextTEMP_Flag));
}
void SkPaint::setStyle(Style style) {
if ((unsigned)style < kStyleCount) {
GEN_ID_INC_EVAL((unsigned)style != fStyle);
- fStyle = style;
+ fParts.setStyle(static_cast<SkPaintParts::Style>(style));
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
SkDebugf("SkPaint::setStyle(%d) out of range\n", style);
@@ -333,13 +335,13 @@ void SkPaint::setStyle(Style style) {
void SkPaint::setColor(SkColor color) {
GEN_ID_INC_EVAL(color != fColor);
- fColor = color;
+ fParts.setColor(color);
fDirtyBits |= kColor_DirtyBit;
}
void SkPaint::setAlpha(U8CPU a) {
- this->setColor(SkColorSetARGB(a, SkColorGetR(fColor),
- SkColorGetG(fColor), SkColorGetB(fColor)));
+ const SkColor c = fParts.getColor();
+ this->setColor(SkColorSetARGB(a, SkColorGetR(c), SkColorGetG(c), SkColorGetB(c)));
}
void SkPaint::setARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
@@ -349,7 +351,7 @@ void SkPaint::setARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
void SkPaint::setStrokeWidth(SkScalar width) {
if (width >= 0) {
GEN_ID_INC_EVAL(width != fWidth);
- fWidth = width;
+ fParts.setStrokeWidth(width);
fDirtyBits |= kStrokeWidth_DirtyBit;
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
@@ -361,7 +363,7 @@ void SkPaint::setStrokeWidth(SkScalar width) {
void SkPaint::setStrokeMiter(SkScalar limit) {
if (limit >= 0) {
GEN_ID_INC_EVAL(limit != fMiterLimit);
- fMiterLimit = limit;
+ fParts.setStrokeMiter(limit);
fDirtyBits |= kStrokeMiter_DirtyBit;
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
@@ -373,7 +375,7 @@ void SkPaint::setStrokeMiter(SkScalar limit) {
void SkPaint::setStrokeCap(Cap ct) {
if ((unsigned)ct < kCapCount) {
GEN_ID_INC_EVAL((unsigned)ct != fCapType);
- fCapType = SkToU8(ct);
+ fParts.setStrokeCap(static_cast<SkPaintParts::Cap>(ct));
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
SkDebugf("SkPaint::setStrokeCap(%d) out of range\n", ct);
@@ -384,7 +386,7 @@ void SkPaint::setStrokeCap(Cap ct) {
void SkPaint::setStrokeJoin(Join jt) {
if ((unsigned)jt < kJoinCount) {
GEN_ID_INC_EVAL((unsigned)jt != fJoinType);
- fJoinType = SkToU8(jt);
+ fParts.setStrokeJoin(static_cast<SkPaintParts::Join>(jt));
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
SkDebugf("SkPaint::setStrokeJoin(%d) out of range\n", jt);
@@ -397,7 +399,7 @@ void SkPaint::setStrokeJoin(Join jt) {
void SkPaint::setTextAlign(Align align) {
if ((unsigned)align < kAlignCount) {
GEN_ID_INC_EVAL((unsigned)align != fTextAlign);
- fTextAlign = SkToU8(align);
+ fParts.setTextAlign(static_cast<SkPaintParts::Align>(align));
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
SkDebugf("SkPaint::setTextAlign(%d) out of range\n", align);
@@ -408,7 +410,7 @@ void SkPaint::setTextAlign(Align align) {
void SkPaint::setTextSize(SkScalar ts) {
if (ts >= 0) {
GEN_ID_INC_EVAL(ts != fTextSize);
- fTextSize = ts;
+ fParts.setTextSize(ts);
fDirtyBits |= kTextSize_DirtyBit;
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
@@ -419,20 +421,20 @@ void SkPaint::setTextSize(SkScalar ts) {
void SkPaint::setTextScaleX(SkScalar scaleX) {
GEN_ID_INC_EVAL(scaleX != fTextScaleX);
- fTextScaleX = scaleX;
+ fParts.setTextScaleX(scaleX);
fDirtyBits |= kTextScaleX_DirtyBit;
}
void SkPaint::setTextSkewX(SkScalar skewX) {
GEN_ID_INC_EVAL(skewX != fTextSkewX);
- fTextSkewX = skewX;
+ fParts.setTextSkewX(skewX);
fDirtyBits |= kTextSkewX_DirtyBit;
}
void SkPaint::setTextEncoding(TextEncoding encoding) {
if ((unsigned)encoding <= kGlyphID_TextEncoding) {
GEN_ID_INC_EVAL((unsigned)encoding != fTextEncoding);
- fTextEncoding = encoding;
+ fParts.setTextEncoding(static_cast<SkPaintParts::TextEncoding>(encoding));
} else {
#ifdef SK_REPORT_API_RANGE_CHECK
SkDebugf("SkPaint::setTextEncoding(%d) out of range\n", encoding);
@@ -448,36 +450,36 @@ inline static uint32_t set_mask(uint32_t dst, uint32_t bitmask, bool value) {
}
SkTypeface* SkPaint::setTypeface(SkTypeface* font) {
- SkRefCnt_SafeAssign(fTypeface, font);
GEN_ID_INC;
+ SkPaintParts_SafeAssign(fTypeface, font);
fDirtyBits = set_mask(fDirtyBits, kTypeface_DirtyBit, font != NULL);
return font;
}
SkRasterizer* SkPaint::setRasterizer(SkRasterizer* r) {
- SkRefCnt_SafeAssign(fRasterizer, r);
GEN_ID_INC;
+ SkPaintParts_SafeAssign(fRasterizer, r);
fDirtyBits = set_mask(fDirtyBits, kRasterizer_DirtyBit, r != NULL);
return r;
}
SkDrawLooper* SkPaint::setLooper(SkDrawLooper* looper) {
- SkRefCnt_SafeAssign(fLooper, looper);
GEN_ID_INC;
+ SkPaintParts_SafeAssign(fLooper, looper);
fDirtyBits = set_mask(fDirtyBits, kLooper_DirtyBit, looper != NULL);
return looper;
}
SkImageFilter* SkPaint::setImageFilter(SkImageFilter* imageFilter) {
- SkRefCnt_SafeAssign(fImageFilter, imageFilter);
GEN_ID_INC;
+ SkPaintParts_SafeAssign(fImageFilter, imageFilter);
fDirtyBits = set_mask(fDirtyBits, kImageFilter_DirtyBit, imageFilter != NULL);
return imageFilter;
}
SkAnnotation* SkPaint::setAnnotation(SkAnnotation* annotation) {
- SkRefCnt_SafeAssign(fAnnotation, annotation);
GEN_ID_INC;
+ SkPaintParts_SafeAssign(fAnnotation, annotation);
fDirtyBits = set_mask(fDirtyBits, kAnnotation_DirtyBit, annotation != NULL);
return annotation;
}
@@ -959,7 +961,7 @@ SkDrawCacheProc SkPaint::getDrawCacheProc() const {
};
unsigned index = this->getTextEncoding();
- if (fFlags & kSubpixelText_Flag) {
+ if (this->getFlags() & kSubpixelText_Flag) {
index += 4;
}
@@ -987,7 +989,7 @@ SkScalar SkPaint::setupForAsPaths() {
this->setFlags(flags);
this->setHinting(SkPaint::kNo_Hinting);
- SkScalar textSize = fTextSize;
+ SkScalar textSize = this->getTextSize();
this->setTextSize(kCanonicalTextSizeForPaths);
return textSize / kCanonicalTextSizeForPaths;
}
@@ -1203,7 +1205,7 @@ size_t SkPaint::breakText(const void* textD, size_t length, SkScalar maxWidth,
return 0;
}
- if (0 == fTextSize) {
+ if (0 == this->getTextSize()) {
if (measuredWidth) {
*measuredWidth = 0;
}
@@ -1945,7 +1947,7 @@ void SkPaint::descriptorProc(const SkDeviceProperties* deviceProperties,
}
#endif
- proc(fTypeface, desc, context);
+ proc(this->getTypeface(), desc, context);
}
SkGlyphCache* SkPaint::detachCache(const SkDeviceProperties* deviceProperties,
@@ -2147,9 +2149,9 @@ void SkPaint::flatten(SkWriteBuffer& buffer) const {
buffer.writeFlattenable(this->getLooper());
buffer.writeFlattenable(this->getImageFilter());
- if (fAnnotation) {
+ if (this->getAnnotation()) {
buffer.writeBool(true);
- fAnnotation->writeToBuffer(buffer);
+ this->getAnnotation()->writeToBuffer(buffer);
} else {
buffer.writeBool(false);
}
@@ -2234,43 +2236,43 @@ void SkPaint::unflatten(SkReadBuffer& buffer) {
SkShader* SkPaint::setShader(SkShader* shader) {
GEN_ID_INC_EVAL(shader != fShader);
- SkRefCnt_SafeAssign(fShader, shader);
+ SkPaintParts_SafeAssign(fShader, shader);
fDirtyBits = set_mask(fDirtyBits, kShader_DirtyBit, shader != NULL);
return shader;
}
SkColorFilter* SkPaint::setColorFilter(SkColorFilter* filter) {
GEN_ID_INC_EVAL(filter != fColorFilter);
- SkRefCnt_SafeAssign(fColorFilter, filter);
+ SkPaintParts_SafeAssign(fColorFilter, filter);
fDirtyBits = set_mask(fDirtyBits, kColorFilter_DirtyBit, filter != NULL);
return filter;
}
SkXfermode* SkPaint::setXfermode(SkXfermode* mode) {
GEN_ID_INC_EVAL(mode != fXfermode);
- SkRefCnt_SafeAssign(fXfermode, mode);
+ SkPaintParts_SafeAssign(fXfermode, mode);
fDirtyBits = set_mask(fDirtyBits, kXfermode_DirtyBit, mode != NULL);
return mode;
}
SkXfermode* SkPaint::setXfermodeMode(SkXfermode::Mode mode) {
- SkSafeUnref(fXfermode);
- fXfermode = SkXfermode::Create(mode);
+ SkSafeUnref(fParts.fXfermode);
+ fParts.fXfermode = SkXfermode::Create(mode);
GEN_ID_INC;
- fDirtyBits = set_mask(fDirtyBits, kXfermode_DirtyBit, fXfermode != NULL);
- return fXfermode;
+ fDirtyBits = set_mask(fDirtyBits, kXfermode_DirtyBit, fParts.fXfermode != NULL);
+ return fParts.fXfermode;
}
SkPathEffect* SkPaint::setPathEffect(SkPathEffect* effect) {
GEN_ID_INC_EVAL(effect != fPathEffect);
- SkRefCnt_SafeAssign(fPathEffect, effect);
+ SkPaintParts_SafeAssign(fPathEffect, effect);
fDirtyBits = set_mask(fDirtyBits, kPathEffect_DirtyBit, effect != NULL);
return effect;
}
SkMaskFilter* SkPaint::setMaskFilter(SkMaskFilter* filter) {
GEN_ID_INC_EVAL(filter != fMaskFilter);
- SkRefCnt_SafeAssign(fMaskFilter, filter);
+ SkPaintParts_SafeAssign(fMaskFilter, filter);
fDirtyBits = set_mask(fDirtyBits, kMaskFilter_DirtyBit, filter != NULL);
return filter;
}
@@ -2284,7 +2286,8 @@ bool SkPaint::getFillPath(const SkPath& src, SkPath* dst,
const SkPath* srcPtr = &src;
SkPath tmpPath;
- if (fPathEffect && fPathEffect->filterPath(&tmpPath, src, &rec, cullRect)) {
+ SkPathEffect* pe = this->getPathEffect();
+ if (pe && pe->filterPath(&tmpPath, src, &rec, cullRect)) {
srcPtr = &tmpPath;
}
@@ -2621,11 +2624,11 @@ bool SkTextToPathIter::next(const SkPath** path, SkScalar* xpos) {
///////////////////////////////////////////////////////////////////////////////
bool SkPaint::nothingToDraw() const {
- if (fLooper) {
+ if (this->getLooper()) {
return false;
}
SkXfermode::Mode mode;
- if (SkXfermode::AsMode(fXfermode, &mode)) {
+ if (SkXfermode::AsMode(this->getXfermode(), &mode)) {
switch (mode) {
case SkXfermode::kSrcOver_Mode:
case SkXfermode::kSrcATop_Mode:
@@ -2643,7 +2646,7 @@ bool SkPaint::nothingToDraw() const {
}
void SkPaint::setBitfields(uint32_t bitfields) {
- fBitfields = bitfields;
+ fParts.fBitfields = bitfields;
}
inline static unsigned popcount(uint8_t x) {
« no previous file with comments | « include/core/SkPaintParts.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698