diff options
-rw-r--r-- | docs/SkCanvas_Reference.bmh | 10 | ||||
-rw-r--r-- | fuzz/FuzzCanvas.cpp | 3 | ||||
-rw-r--r-- | include/core/SkCanvas.h | 5 | ||||
-rw-r--r-- | site/user/api/SkCanvas_Reference.md | 5 | ||||
-rw-r--r-- | site/user/api/catalog.htm | 4 | ||||
-rw-r--r-- | src/core/SkCanvas.cpp | 13 | ||||
-rw-r--r-- | src/core/SkPicturePlayback.cpp | 4 | ||||
-rw-r--r-- | tools/debugger/SkObjectParser.cpp | 3 |
8 files changed, 8 insertions, 39 deletions
diff --git a/docs/SkCanvas_Reference.bmh b/docs/SkCanvas_Reference.bmh index 6e6d6a7456..f090207882 100644 --- a/docs/SkCanvas_Reference.bmh +++ b/docs/SkCanvas_Reference.bmh @@ -1682,7 +1682,6 @@ documentation purposes, this enum is named rather than anonymous #Line # sets SaveLayerRec options ## #Code enum { - kIsOpaque_SaveLayerFlag = 1 << 0, kPreserveLCDText_SaveLayerFlag = 1 << 1, kInitWithPrevious_SaveLayerFlag = 1 << 2, kDontClipToLayer_Legacy_SaveLayerFlag = kDontClipToLayer_PrivateSaveLayerFlag, @@ -1692,11 +1691,6 @@ documentation purposes, this enum is named rather than anonymous SaveLayerFlags provides options that may be used in any combination in SaveLayerRec, defining how Layer allocated by saveLayer operates. -#Const kIsOpaque_SaveLayerFlag 1 - Creates Layer without transparency. Flag is ignored if Layer Paint contains - Image_Filter or Color_Filter. -## - #Const kPreserveLCDText_SaveLayerFlag 2 Creates Layer for LCD text. Flag is ignored if Layer Paint contains Image_Filter or Color_Filter. @@ -1824,8 +1818,8 @@ Sets fBounds, fPaint, and fBackdrop to nullptr. Clears fSaveLayerFlags. #Example SkCanvas::SaveLayerRec rec1; - rec1.fSaveLayerFlags = SkCanvas::kIsOpaque_SaveLayerFlag; - SkCanvas::SaveLayerRec rec2(nullptr, nullptr, SkCanvas::kIsOpaque_SaveLayerFlag); + rec1.fSaveLayerFlags = SkCanvas::kPreserveLCDText_SaveLayerFlag; + SkCanvas::SaveLayerRec rec2(nullptr, nullptr, SkCanvas::kPreserveLCDText_SaveLayerFlag); SkDebugf("rec1 %c= rec2\n", rec1.fBounds == rec2.fBounds && rec1.fPaint == rec2.fPaint && rec1.fBackdrop == rec2.fBackdrop diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp index 0334d85d36..ffc8781e6b 100644 --- a/fuzz/FuzzCanvas.cpp +++ b/fuzz/FuzzCanvas.cpp @@ -1150,9 +1150,6 @@ static void fuzz_canvas(Fuzz* fuzz, SkCanvas* canvas, int depth = 9) { } // _DumpCanvas can't handle this. // if (make_fuzz_t<bool>(fuzz)) { - // saveLayerRec.fSaveLayerFlags |= SkCanvas::kIsOpaque_SaveLayerFlag; - // } - // if (make_fuzz_t<bool>(fuzz)) { // saveLayerRec.fSaveLayerFlags |= SkCanvas::kPreserveLCDText_SaveLayerFlag; // } diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h index 0c7bfece80..9ac328291c 100644 --- a/include/core/SkCanvas.h +++ b/include/core/SkCanvas.h @@ -605,11 +605,6 @@ public: defining how layer allocated by saveLayer() operates. */ enum { - /** Creates layer without transparency. Flag is ignored if layer SkPaint contains - SkImageFilter or SkColorFilter. - */ - kIsOpaque_SaveLayerFlag = 1 << 0, - /** Creates layer for LCD text. Flag is ignored if layer SkPaint contains SkImageFilter or SkColorFilter. */ diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md index 6228d3ade4..eb7c1ecb43 100644 --- a/site/user/api/SkCanvas_Reference.md +++ b/site/user/api/SkCanvas_Reference.md @@ -1693,7 +1693,6 @@ depth of saved stack <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> enum { -<a href="#SkCanvas_kIsOpaque_SaveLayerFlag">kIsOpaque SaveLayerFlag</a> = 1 << 0, <a href="#SkCanvas_kPreserveLCDText_SaveLayerFlag">kPreserveLCDText SaveLayerFlag</a> = 1 << 1, <a href="#SkCanvas_kInitWithPrevious_SaveLayerFlag">kInitWithPrevious SaveLayerFlag</a> = 1 << 2, <a href="#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag">kDontClipToLayer Legacy SaveLayerFlag</a> = kDontClipToLayer_PrivateSaveLayerFlag, @@ -1706,10 +1705,6 @@ defining how <a href="#Layer">Layer</a> allocated by <a href="#SkCanvas_saveLaye <table> <tr> - <td><a name="SkCanvas_kIsOpaque_SaveLayerFlag"> <code><strong>SkCanvas::kIsOpaque_SaveLayerFlag </strong></code> </a></td><td>1</td><td>Creates <a href="#Layer">Layer</a> without transparency. Flag is ignored if <a href="#Layer">Layer</a> <a href="SkPaint_Reference#Paint">Paint</a> contains -<a href="undocumented#Image_Filter">Image Filter</a> or <a href="undocumented#Color_Filter">Color Filter</a>.</td> - </tr> - <tr> <td><a name="SkCanvas_kPreserveLCDText_SaveLayerFlag"> <code><strong>SkCanvas::kPreserveLCDText_SaveLayerFlag </strong></code> </a></td><td>2</td><td>Creates <a href="#Layer">Layer</a> for LCD text. Flag is ignored if <a href="#Layer">Layer</a> <a href="SkPaint_Reference#Paint">Paint</a> contains <a href="undocumented#Image_Filter">Image Filter</a> or <a href="undocumented#Color_Filter">Color Filter</a>.</td> </tr> diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm index 86f5e579ef..3e434fc919 100644 --- a/site/user/api/catalog.htm +++ b/site/user/api/catalog.htm @@ -372,7 +372,7 @@ "stdout": "---\\n-x-\\n---\\n" }, "SkCanvas_SaveLayerRec_SaveLayerRec": { - "code": "void draw(SkCanvas* canvas) {\n SkCanvas::SaveLayerRec rec1;\n rec1.fSaveLayerFlags = SkCanvas::kIsOpaque_SaveLayerFlag;\n SkCanvas::SaveLayerRec rec2(nullptr, nullptr, SkCanvas::kIsOpaque_SaveLayerFlag);\n SkDebugf(\"rec1 %c= rec2\\n\", rec1.fBounds == rec2.fBounds\n && rec1.fPaint == rec2.fPaint\n && rec1.fBackdrop == rec2.fBackdrop\n && rec1.fSaveLayerFlags == rec2.fSaveLayerFlags ? '=' : '!');\n}", + "code": "void draw(SkCanvas* canvas) {\n SkCanvas::SaveLayerRec rec1;\n rec1.fSaveLayerFlags = SkCanvas::kPreserveLCDText_SaveLayerFlag;\n SkCanvas::SaveLayerRec rec2(nullptr, nullptr, SkCanvas::kPreserveLCDText_SaveLayerFlag);\n SkDebugf(\"rec1 %c= rec2\\n\", rec1.fBounds == rec2.fBounds\n && rec1.fPaint == rec2.fPaint\n && rec1.fBackdrop == rec2.fBackdrop\n && rec1.fSaveLayerFlags == rec2.fSaveLayerFlags ? '=' : '!');\n}", "hash": "ac7c834dce2eac6ef49c15e820e94003", "file": "SkCanvas_Reference", "name": "SkCanvas::SaveLayerRec::SaveLayerRec", @@ -7231,4 +7231,4 @@ onclick="handleMouseClick()" ></canvas > </body> </html> -
\ No newline at end of file + diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 9f13a711c2..2667f8fed0 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -1036,20 +1036,18 @@ void SkCanvas::DrawDeviceWithFilter(SkBaseDevice* src, const SkImageFilter* filt } } -static SkImageInfo make_layer_info(const SkImageInfo& prev, int w, int h, bool isOpaque, - const SkPaint* paint) { +static SkImageInfo make_layer_info(const SkImageInfo& prev, int w, int h, const SkPaint* paint) { // need to force L32 for now if we have an image filter. Once filters support other colortypes // e.g. sRGB or F16, we can remove this check // SRGBTODO: Can we remove this check now? const bool hasImageFilter = paint && paint->getImageFilter(); - SkAlphaType alphaType = isOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType; if ((prev.bytesPerPixel() < 4) || hasImageFilter) { // force to L32 - return SkImageInfo::MakeN32(w, h, alphaType); + return SkImageInfo::MakeN32Premul(w, h); } else { // keep the same characteristics as the prev - return SkImageInfo::Make(w, h, prev.colorType(), alphaType, prev.refColorSpace()); + return SkImageInfo::Make(w, h, prev.colorType(), kPremul_SkAlphaType, prev.refColorSpace()); } } @@ -1107,12 +1105,10 @@ void SkCanvas::internalSaveLayer(const SaveLayerRec& rec, SaveLayerStrategy stra return; } - bool isOpaque = SkToBool(saveLayerFlags & kIsOpaque_SaveLayerFlag); SkPixelGeometry geo = fProps.pixelGeometry(); if (paint) { // TODO: perhaps add a query to filters so we might preserve opaqueness... if (paint->getImageFilter() || paint->getColorFilter()) { - isOpaque = false; geo = kUnknown_SkPixelGeometry; } } @@ -1123,8 +1119,7 @@ void SkCanvas::internalSaveLayer(const SaveLayerRec& rec, SaveLayerStrategy stra return; } - SkImageInfo info = make_layer_info(priorDevice->imageInfo(), ir.width(), ir.height(), isOpaque, - paint); + SkImageInfo info = make_layer_info(priorDevice->imageInfo(), ir.width(), ir.height(), paint); sk_sp<SkBaseDevice> newDevice; { diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp index f0d454a5ff..7b9e411764 100644 --- a/src/core/SkPicturePlayback.cpp +++ b/src/core/SkPicturePlayback.cpp @@ -22,7 +22,6 @@ // matches old SkCanvas::SaveFlags enum LegacySaveFlags { - kHasAlphaLayer_LegacySaveFlags = 0x04, kClipToLayer_LegacySaveFlags = 0x10, }; @@ -32,9 +31,6 @@ SkCanvas::SaveLayerFlags SkCanvas::LegacySaveFlagsToSaveLayerFlags(uint32_t flag if (0 == (flags & kClipToLayer_LegacySaveFlags)) { layerFlags |= SkCanvas::kDontClipToLayer_PrivateSaveLayerFlag; } - if (0 == (flags & kHasAlphaLayer_LegacySaveFlags)) { - layerFlags |= kIsOpaque_SaveLayerFlag; - } return layerFlags; } diff --git a/tools/debugger/SkObjectParser.cpp b/tools/debugger/SkObjectParser.cpp index 352a01da23..dae2cde92e 100644 --- a/tools/debugger/SkObjectParser.cpp +++ b/tools/debugger/SkObjectParser.cpp @@ -349,9 +349,6 @@ SkString* SkObjectParser::RegionToString(const SkRegion& region) { SkString* SkObjectParser::SaveLayerFlagsToString(SkCanvas::SaveLayerFlags saveLayerFlags) { SkString* mFlags = new SkString("SkCanvas::SaveFlags: "); - if (saveLayerFlags & SkCanvas::kIsOpaque_SaveLayerFlag) { - mFlags->append("kIsOpaque_SaveLayerFlag "); - } if (saveLayerFlags & SkCanvas::kPreserveLCDText_SaveLayerFlag) { mFlags->append("kPreserveLCDText_SaveLayerFlag "); } |