| Index: src/core/SkBitmapProcState.cpp
|
| diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp
|
| index cdc582bfeec64a70791d0ecb615186b98296e639..b3431f4eb84e267e6bae7769e7db7d44d8a6fd39 100644
|
| --- a/src/core/SkBitmapProcState.cpp
|
| +++ b/src/core/SkBitmapProcState.cpp
|
| @@ -377,6 +377,26 @@ SkBitmapProcState::~SkBitmapProcState() {
|
| SkDELETE(fBitmapFilter);
|
| }
|
|
|
| +SkBitmapProcState::SkBitmapProcState(const SkBitmapProcState& src)
|
| + : fInvMatrix(src.fInvMatrix), fInvProc(src.fInvProc),
|
| + fInvSxFractionalInt(src.fInvSxFractionalInt), fInvKyFractionalInt(src.fInvKyFractionalInt),
|
| + fTileProcX(src.fTileProcX), fTileProcY(src.fTileProcY),
|
| + fTileLowBitsProcX(src.fTileLowBitsProcX), fTileLowBitsProcY(src.fTileLowBitsProcY),
|
| + fIntTileProcY(src.fIntTileProcY), fFilterOneX(src.fFilterOneX), fFilterOneY(src.fFilterOneY),
|
| + fPaintPMColor(src.fPaintPMColor), fInvSx(src.fInvSx), fInvKy(src.fInvKy),
|
| + fAlphaScale(src.fAlphaScale), fInvType(src.fInvType),
|
| + fTileModeX(src.fTileModeX), fTileModeY(src.fTileModeY), fFilterLevel(src.fFilterLevel),
|
| + fShaderProc32(src.fShaderProc32), fShaderProc16(src.fShaderProc16),
|
| + fMatrixProc(src.fMatrixProc), fSampleProc32(src.fSampleProc32),
|
| + fSampleProc16(src.fSampleProc16), fOrigBitmap(src.fOrigBitmap),
|
| + fScaledBitmap(src.fScaledBitmap)
|
| +{
|
| + // TODO(dominikg): Doesn't work yet. Assert in SkBitmapProcShader.cpp on line 224 fails.
|
| + fBitmap = src.fBitmap == &src.fOrigBitmap ? &fOrigBitmap : &fScaledBitmap;
|
| +
|
| + fBitmapFilter = src.fBitmapFilter;
|
| +}
|
| +
|
| bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
|
| SkASSERT(fOrigBitmap.width() && fOrigBitmap.height());
|
|
|
| @@ -398,6 +418,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
|
| }
|
| // The above logic should have always assigned fBitmap, but in case it
|
| // didn't, we check for that now...
|
| + // TODO(dominikg): Ask humper@ if we can just use an SkASSERT(fBitmap)?
|
| if (NULL == fBitmap) {
|
| return false;
|
| }
|
| @@ -480,6 +501,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
|
| // shader will perform.
|
|
|
| fMatrixProc = this->chooseMatrixProc(trivialMatrix);
|
| + // TODO(dominikg): SkASSERT(fMatrixProc) instead? chooseMatrixProc never returns NULL.
|
| if (NULL == fMatrixProc) {
|
| return false;
|
| }
|
| @@ -521,6 +543,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
|
| fPaintPMColor = SkPreMultiplyColor(paint.getColor());
|
| break;
|
| default:
|
| + // TODO(dominikg): Should we ever get here? SkASSERT(false) instead?
|
| return false;
|
| }
|
|
|
|
|