Fix initialization bug for fConservativeIsScaleTranslate
Also don't mark it as conservative, we expect it to be correct all
the time.
TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261573002
Review-Url: https://codereview.chromium.org/2261573002
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 881c19b..551ca60 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -625,7 +625,7 @@
// know that the device is an SkBitmapDevice (really an SkNoPixelsBitmapDevice).
static_cast<SkBitmapDevice*>(fMCRec->fLayer->fDevice)->setNewSize(bounds.size());
fDeviceClipBounds = qr_clip_bounds(bounds);
- fConservativeIsScaleTranslate = true;
+ fIsScaleTranslate = true;
}
SkBaseDevice* SkCanvas::init(SkBaseDevice* device, InitFlags flags) {
@@ -649,6 +649,7 @@
fMCRec = (MCRec*)fMCStack.push_back();
new (fMCRec) MCRec(fConservativeRasterClip);
+ fIsScaleTranslate = true;
SkASSERT(sizeof(DeviceCM) <= sizeof(fDeviceCMStorage));
fMCRec->fLayer = (DeviceCM*)fDeviceCMStorage;
@@ -665,7 +666,6 @@
fMCRec->fLayer->fDevice = SkRef(device);
fMCRec->fRasterClip.setRect(device->getGlobalBounds());
fDeviceClipBounds = qr_clip_bounds(device->getGlobalBounds());
- fConservativeIsScaleTranslate = true;
}
return device;
@@ -1323,7 +1323,7 @@
}
if (fMCRec) {
- fConservativeIsScaleTranslate = fMCRec->fMatrix.isScaleTranslate();
+ fIsScaleTranslate = fMCRec->fMatrix.isScaleTranslate();
fDeviceClipBounds = qr_clip_bounds(fMCRec->fRasterClip.getBounds());
}
}
@@ -1481,7 +1481,7 @@
this->checkForDeferredSave();
fDeviceCMDirty = true;
fMCRec->fMatrix.preConcat(matrix);
- fConservativeIsScaleTranslate = fMCRec->fMatrix.isScaleTranslate();
+ fIsScaleTranslate = fMCRec->fMatrix.isScaleTranslate();
this->didConcat(matrix);
}
@@ -1493,7 +1493,7 @@
void SkCanvas::setMatrix(const SkMatrix& matrix) {
this->checkForDeferredSave();
this->internalSetMatrix(matrix);
- fConservativeIsScaleTranslate = matrix.isScaleTranslate();
+ fIsScaleTranslate = matrix.isScaleTranslate();
this->didSetMatrix(matrix);
}
@@ -1839,11 +1839,11 @@
SkASSERT(tmp == fDeviceClipBounds);
}
- // Verify that fConservativeIsScaleTranslate is set properly.
- SkASSERT(!fConservativeIsScaleTranslate || fMCRec->fMatrix.isScaleTranslate());
+ // Verify that fIsScaleTranslate is set properly.
+ SkASSERT(fIsScaleTranslate == fMCRec->fMatrix.isScaleTranslate());
#endif
- if (!fConservativeIsScaleTranslate) {
+ if (!fIsScaleTranslate) {
return quick_reject_slow_path(src, fDeviceClipBounds, fMCRec->fMatrix);
}