skia2/include/core
Michael Ludwig b0cee9bf9a Remove drawBitmap et al. from SkDevice
SkCanvas keeps its non-exotic drawBitmap calls for now but they
immediately wrap the bitmap in SkImage::MakeFromBitmap. This will
add a copy for mutable bitmaps, but this can be worked around by using
images directly (preferred), or marking the bitmap as immutable. In
practice, mutable bitmaps do not seem to be widely used so this is
deemed acceptable for now.

Several GMs are updated to mark the bitmaps as immutable in order to
avoid pixel churn in how CPU vs. GPU mipmaps are generated. As we move
towards explicit mipmap generation, this distinction will become less
critical, so I'm just avoiding it for now. See skbug.com/9337 for mipmap
proposal. The image diffs encountered in this CL directly related to
generating mipmaps for bitmaps already cached on the GPU vs. not on the
GPU yet.

It was decided to copy if mutable vs. never copying the bitmap because
it preserves the image guarantees the devices and canvas' rely on,
and imposing the need to inspect an image for mutability is undesired.

Bug: skia:10037, skia:9337
Change-Id: If152e6cae1e155ccf6bd2cd755895f3c7a0135a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276004
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-12 15:28:00 +00:00
..
SkAnnotation.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkBBHFactory.h add metadata to calculated bounds 2020-02-27 19:12:35 +00:00
SkBitmap.h remove enum docs 2020-02-11 21:43:07 +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 Remove drawBitmap et al. from SkDevice 2020-03-12 15:28:00 +00:00
SkCanvasVirtualEnforcer.h Remove drawBitmap et al. from SkDevice 2020-03-12 15:28:00 +00:00
SkClipOp.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkColor.h SkColorSetA now warns if the result is unused. 2020-02-05 16:07:57 +00:00
SkColorFilter.h thread alloc through to color filters 2020-02-04 18:17:08 +00:00
SkColorPriv.h Remove SkScalarClampMax and SkScalarPin 2020-02-06 18:29:51 +00:00
SkColorSpace.h remove unneeded include 2020-02-21 21:01:32 +00:00
SkContourMeasure.h More classes no longer inherit from SkNoncopyable 2019-06-10 18:15:18 +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 test data.equals with empty 2020-02-17 17:53:49 +00:00
SkDataTable.h trim out unneeded references to SkString 2019-11-15 21:01:01 +00:00
SkDeferredDisplayList.h Switch member destructor order in SkDeferredDisplayList 2020-03-03 19:32:20 +00:00
SkDeferredDisplayListRecorder.h Move SkDeferredDisplayList.h into include\core (take 2) 2020-02-21 21:26:02 +00:00
SkDocument.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkDrawable.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkDrawLooper.h IWYU -- colorspace no longer includes matrix44 2020-01-21 21:37:32 +00:00
SkEncodedImageFormat.h GOOGLE3 -> SK_BUILD_FOR_GOOGLE3 2017-12-19 14:42:16 +00:00
SkExecutor.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFilterQuality.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFlattenable.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFont.h Skip degenerate contours in glyphs. 2020-02-13 16:22:42 +00:00
SkFontArguments.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontLCDConfig.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontMetrics.h Restore SkFontMetrics documentation. 2019-08-15 18:11:39 +00:00
SkFontMgr.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontParameters.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontStyle.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontTypes.h Remove SkTextEncoding and SkFontHinting macros. 2019-05-22 20:44:28 +00:00
SkGraphics.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkICC.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkImage.h Reland "Split building encoding from decoding" 2020-03-09 20:21:19 +00:00
SkImageEncoder.h Revert "add runtime registration for encoders" 2019-05-15 22:02:39 +00:00
SkImageFilter.h Move SkImageFilter functionality into private SkImageFilter_Base 2019-08-02 18:56:39 +00:00
SkImageGenerator.h Avoid unbounded listener growth on SkImage_Lazy when textures are purged 2020-03-02 18:38:09 +00:00
SkImageInfo.h basic, untested BGR 1010102 and 101010x 2020-02-11 21:44:57 +00:00
SkM44.h [skottie] Initial support for per-character 3D 2020-02-21 21:14:02 +00:00
SkMallocPixelRef.h SkMallocPixelRef: remove MakeDirect and MakeWithProc from API. 2019-08-15 19:01:13 +00:00
SkMaskFilter.h Remove SkMaskFilter::makeWithMatrix() 2020-03-09 21:02:38 +00:00
SkMath.h Remove SkClampMax 2020-02-06 19:49:53 +00:00
SkMatrix44.h remove legacy SkMScalar code 2020-01-23 23:13:21 +00:00
SkMatrix.h remove enum docs 2020-02-11 21:43:07 +00:00
SkMilestone.h Update Skia milestone to 83 2020-03-12 11:33:00 +00:00
SkOverdrawCanvas.h Remove drawBitmap et al. from SkDevice 2020-03-12 15:28:00 +00:00
SkPaint.h remove enum docs 2020-02-11 21:43:07 +00:00
SkPath.h remove enum docs 2020-02-11 21:43:07 +00:00
SkPathEffect.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkPathMeasure.h More classes no longer inherit from SkNoncopyable 2019-06-10 18:15:18 +00:00
SkPathTypes.h Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SkPicture.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkPictureRecorder.h let picture record take a bbh directly 2020-01-21 18:59:11 +00:00
SkPixelRef.h Prevent unbounded listener growth on SkPixelRefs. 2020-03-02 22:32:09 +00:00
SkPixmap.h remove enum docs 2020-02-11 21:43:07 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 remove enum docs 2020-02-11 21:43:07 +00:00
SkRSXform.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkRWBuffer.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkScalar.h Remove SkScalarClampMax and SkScalarPin 2020-02-06 18:29:51 +00:00
SkSerialProcs.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkShader.h Optional local matrix for SkShaders factories 2019-07-09 18:09:14 +00:00
SkSize.h Remove GrSurfaceDesc 2020-02-07 19:48:13 +00:00
SkStream.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkString.h Don't mark inline functions in SkString.h as static. 2019-06-04 11:40:02 +00:00
SkStrokeRec.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSurface.h Update SkSurface::ReplaceBackendTexture to take ContentChangeMode 2020-02-18 15:15:06 +00:00
SkSurfaceCharacterization.h Add createBackendFormat and createFBO0 helper methods to SkSurfaceCharacterization 2020-02-13 18:55:22 +00:00
SkSurfaceProps.h Add SkSurfaceProp::operator!=. 2019-08-30 15:27:33 +00:00
SkSwizzle.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTextBlob.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkTileMode.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTime.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTraceMemoryDump.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTypeface.h Move scaler context fallback to GDI 2020-02-11 19:50:27 +00:00
SkTypes.h Add comment to SkTPin explaining NaN behavior 2020-02-11 14:43:39 +00:00
SkUnPreMultiply.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkVertices.h SkVertices: Remove volatile/nonvolatile bit 2020-03-11 17:33:17 +00:00
SkYUVAIndex.h Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
SkYUVASizeInfo.h Use safe computation for adding up YUVASizeInfo total bytes 2019-09-23 20:55:28 +00:00