skia2/include/core
Michael Ludwig b27ba538ec Simplify layer bounds syncing and no-device error handling in SkCanvas::internalSaveLayer
This corrects some subtle bugs that can occur with recording canvas or
if a device fails to be created for a new layer, where the stashed
matrix would not be restored properly. Since no new DeviceCM would get
added in those cases, the canvas' total matrix wouldn't get fixed in the
paired onRestore() and it would remain dirty for the remainder of the
canvas's lifetime.

After this change, the underlying SkDevice's bounds are also kept in
sync with the intent of the saveLayer when kNoLayer_Strategy is used.
Previously, the bounds would be applied to the canvas' conservative clip
and quick reject bounds, but the device would remain un-updated. As we
move towards SkNoPixelsDevice taking over the conservative clip bounds,
this ensures bounds remain up to date within a saveLayer/restore pair
even if no layer was allocated.

Change-Id: I5ca389bdd624ea7278106da863a96e9d8f90e2d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/335861
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-11-19 21:24:40 +00:00
..
SkAnnotation.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkBBHFactory.h Fix clang 12 Wsuggest-override and Wsuggest-destructor-override 2020-07-22 01:11:36 +00:00
SkBitmap.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkBlendMode.h remove enum docs 2020-02-11 21:43:07 +00:00
SkBlurTypes.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkCanvas.h Simplify layer bounds syncing and no-device error handling in SkCanvas::internalSaveLayer 2020-11-19 21:24:40 +00:00
SkCanvasVirtualEnforcer.h remove legacy virtual from enforcer 2020-03-13 14:57:03 +00:00
SkClipOp.h Update SkClipOp::kMax_EnumValue to match non-deprecated values 2020-09-28 15:30:33 +00:00
SkColor.h Add getter for channels to GrBackendFormat 2020-04-08 19:54:27 +00:00
SkColorFilter.h [skottie] Add support for invert/YIQ 2020-09-11 14:55:44 +00:00
SkColorPriv.h move SkTPin to include/private 2020-10-16 19:45:11 +00:00
SkColorSpace.h Enable ClangTidy check llvm-namespace-comment. 2020-08-06 19:07:52 +00:00
SkContourMeasure.h [canvaskit] Flesh out remaining docs for core CanvasKit. 2020-10-05 11:47:40 +00:00
SkCoverageMode.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkCubicMap.h [skottie] De-dupe sequential cubic mappers 2019-07-17 17:14:46 +00:00
SkData.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkDataTable.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkDeferredDisplayList.h Require a direct context to precompile a DDL's programs 2020-08-14 14:35:41 +00:00
SkDeferredDisplayListRecorder.h Remove deprecated DDL promise texture image factories. 2020-11-17 17:28:23 +00:00
SkDocument.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkDrawable.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkDrawLooper.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkEncodedImageFormat.h Reland "heif: Add AVIF type and AVIF sniffing" 2020-11-05 15:25:52 +00:00
SkExecutor.h Allow SkThreadPool to be non-borrowing 2020-04-23 16:11:28 +00:00
SkFilterQuality.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFlattenable.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkFont.h Update SkFont::measureText documentation. 2020-11-11 17:15:35 +00:00
SkFontArguments.h Remove SkFontArguments::Axis. 2020-07-15 20:59:22 +00:00
SkFontMetrics.h SkCustomTypefaceBuilder to set SkFontStyle 2020-08-19 00:09:55 +00:00
SkFontMgr.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkFontParameters.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontStyle.h move SkTPin to include/private 2020-10-16 19:45:11 +00:00
SkFontTypes.h Remove SkTextEncoding and SkFontHinting macros. 2019-05-22 20:44:28 +00:00
SkGraphics.h add SkGraphics::AllowJIT() 2020-08-06 14:38:26 +00:00
SkICC.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkImage.h Remove unused copy-to-external YUV SkImage factories. 2020-11-13 19:24:15 +00:00
SkImageEncoder.h Revert "add runtime registration for encoders" 2019-05-15 22:02:39 +00:00
SkImageFilter.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkImageGenerator.h Remove legacy SkImageGenerator YUV planes interface 2020-10-20 13:44:11 +00:00
SkImageInfo.h Add several more values to SkYUVColorSpace 2020-07-24 18:49:10 +00:00
SkM44.h Add rc accessor method to SkMatrix. 2020-09-22 21:32:20 +00:00
SkMallocPixelRef.h Enable ClangTidy check llvm-namespace-comment. 2020-08-06 19:07:52 +00:00
SkMaskFilter.h remove unused maskfilter helpers: Combine, Compose 2020-05-05 19:10:00 +00:00
SkMath.h impl SkMulDiv255Round with SkMul16ShiftRound 2020-09-09 17:01:17 +00:00
SkMatrix44.h Revert "transition matrix44 to opt-in only" 2020-04-16 10:01:29 +00:00
SkMatrix.h calculate glyph offset using (0,0) mapping 2020-11-18 17:18:45 +00:00
SkMilestone.h Update Skia milestone to 89 2020-11-12 16:50:19 +00:00
SkOverdrawCanvas.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkPaint.h [canvaskit] Add docs/types for Paint and Filters/Effects 2020-10-05 11:46:38 +00:00
SkPath.h test lineTo after addRect 2020-10-31 15:10:48 +00:00
SkPathBuilder.h use pathbuilder 2020-09-09 12:43:00 +00:00
SkPathEffect.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkPathMeasure.h [canvaskit] Flesh out remaining docs for core CanvasKit. 2020-10-05 11:47:40 +00:00
SkPathTypes.h Move convexity enum out of public 2020-08-30 13:04:22 +00:00
SkPicture.h pass 'nested' bool to approximateOpCount 2020-08-19 16:45:53 +00:00
SkPictureRecorder.h Almost remove GrContext 2020-10-20 15:52:01 +00:00
SkPixelRef.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkPixmap.h Wsign-conversion for public headers 2020-06-02 12:34:54 +00:00
SkPngChunkReader.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkPoint3.h Add clipping for perspective triangles 2019-12-17 23:24:18 +00:00
SkPoint.h Test texture domain effect with local matrix. 2019-11-22 22:37:33 +00:00
SkPromiseImageTexture.h Simplify promise image callbacks. 2020-11-10 02:47:56 +00:00
SkRasterHandleAllocator.h use std::make_unique 2019-12-12 22:32:45 +00:00
SkRect.h Remove SkMin32/SkMax32 2020-02-06 17:31:51 +00:00
SkRefCnt.h Make GrSurfaceProxy ref counts thread safe. 2019-10-24 19:55:23 +00:00
SkRegion.h remove enum docs 2020-02-11 21:43:07 +00:00
SkRRect.h Fix special case in SkRRect::setOval where the oval devolves to a rect 2020-10-14 17:44:51 +00:00
SkRSXform.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkRWBuffer.h Fix clang 12 Wsuggest-override and Wsuggest-destructor-override 2020-07-22 01:11:36 +00:00
SkSamplingOptions.h Add temporary Make for SkSamplingOptions 2020-11-13 20:12:53 +00:00
SkScalar.h Format and comment SkScalarInterpFunc 2020-08-26 20:50:34 +00:00
SkSerialProcs.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkShader.h Almost remove GrContext 2020-10-20 15:52:01 +00:00
SkSize.h Remove GrSurfaceDesc 2020-02-07 19:48:13 +00:00
SkStream.h Add SkFILEStream constructor which takes a size. 2020-09-11 19:50:24 +00:00
SkString.h Use SkScalar type where appropriate. 2020-07-28 20:13:37 +00:00
SkStrokeRec.h Relax SkStrokeRec::hasEqualEffect 2020-09-15 20:05:40 +00:00
SkSurface.h Update DDL testing harness to support drawing DDL w/ integer offsets 2020-11-10 14:34:46 +00:00
SkSurfaceCharacterization.h Add GrInternalSurfaceFlag for vulkan input attachment. 2020-08-27 20:05:29 +00:00
SkSurfaceProps.h Remove code guarded by SK_LEGACY_SURFACE_PROPS. 2020-10-23 22:41:36 +00:00
SkSwizzle.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTextBlob.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkTileMode.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTime.h Remove SK_REQUIRE_LOCAL_VAR macro. 2020-07-31 02:32:01 +00:00
SkTraceMemoryDump.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTypeface.h Add SkTypeface::getPostScriptName. 2020-10-06 15:35:06 +00:00
SkTypes.h Track vulkan memory allocations in UMA. 2020-10-29 15:24:23 +00:00
SkUnPreMultiply.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkVertices.h Enable ClangTidy check readability-const-return-type. 2020-08-07 17:42:38 +00:00
SkYUVAIndex.h Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
SkYUVAInfo.h Remove SkYUVAInfo::PlanarConfig 2020-11-18 14:26:14 +00:00
SkYUVAPixmaps.h Remove SkYUVAInfo::PlanarConfig 2020-11-18 14:26:14 +00:00
SkYUVASizeInfo.h A new way to specify YUVA planar data from SkCodec to SkImage_Lazy 2020-08-24 14:25:32 +00:00