Merge 13 release notes into RELEASE_NOTES.md
Cherry pick change I4daac83ce577f6a7b4cb92145e47832e94f5a8c1 from branch chrome/m115
to main.
Change-Id: I6ff4f457b87753ea02dac7109f82b975ad3c1850
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/702457
Reviewed-by: Rakshit Sharma <sharaks@google.com>
Auto-Submit: Chris Mumford <cmumford@google.com>
Commit-Queue: Rakshit Sharma <sharaks@google.com>
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 152ba19..a964734 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -2,6 +2,101 @@
This file includes a list of high level updates for each milestone release.
+Milestone 115
+-------------
+ * Clients now need to register codecs which Skia should use to decode raw bytes. For example:
+ `SkCodecs::Register(SkJpegDecoder::Decoder());`. Skia still provides many supported formats
+ (see `include/codec/*Decoder.h`). Clients are free to specify their own, either supplementing
+ the existing set or using a custom version instead of the one previously provided by default
+ by Skia. See `SkCodecs::Decoder` for the necessary data to provide when using a custom decoder
+ (in `include/codec/SkCodec.h`).
+
+ To ease the transition, Skia will continue (for a short while) to register codecs unless
+ `SK_DISABLE_LEGACY_INIT_DECODERS` is defined.
+ * `SkDrawable::newPictureSnapshot` is removed. Instead, call `SkDrawable::makePictureSnapshot`.
+ The old method returned a bare (but ref-counted) pointer, which was easy for clients to get wrong.
+ The new method returns an `sk_sp<SkPicture>`, which is easier to handle, and consistent with the
+ rest of skia.
+ * `SkGraphics::PurgePinnedFontCache()` has been added to allow clients to
+ explicitly trigger `SkStrikeCache` purge checks for `SkStrikes` with
+ pinners. Defining `SK_STRIKE_CACHE_DOESNT_AUTO_CHECK_PINNERS` in the
+ user configuration now disables automatic purge checking of strikes with
+ pinners.
+ * The following SkImage factories have been moved to `include/gpu/graphite/Image.h`:
+ - `SkImage::MakeGraphiteFromBackendTexture -> SkImages::AdoptTextureFrom`
+ - `SkImage::MakeGraphiteFromYUVABackendTextures -> SkImages::TextureFromYUVATextures`
+ - `SkImage::MakeGraphiteFromYUVAPixmaps -> SkImages::TextureFromYUVAPixmaps`
+ - `SkImage::MakeGraphitePromiseTexture -> SkImages::PromiseTextureFrom`
+
+ The SkImage method `makeTextureImage` has been moved to `SkImages::TextureFromImage`.
+
+ `SkImage::RequiredImageProperties` has been renamed to `SkImage::RequiredProperties`,
+ with fMipmapped turned into a boolean instead of the GPU enum.
+ * `SkImage::makeColorSpace` and `SkImage::makeColorTypeAndColorSpace` now take a `GrDirectContext`
+ as the first parameter. This should be supplied when dealing with texture-backed images and can
+ be `nullptr` otherwise.
+ * `SkImage::subset` now takes a `GrDirectContext*` as its first parameter (this can be `nullptr` for
+ non-gpu backed images. Images which are backed by a codec or picture will not be turned into a GPU
+ texture before being read. This should only impact picture-backed images, which may not be read
+ correctly if the picture contain nested texture-backed images itself. To force a conversion to
+ a texture, clients should call `SkImages::TextureFromImage`, passing in the image, and then call
+ subset on the result. Documentation has been clarified that `SkImage::subset` will return a raster-
+ backed image if the source is not backed by a texture, and texture-otherwise.
+
+ `SkImages::SubsetTextureFrom` has been added to subset an image and explicitly return a texture-
+ backed image. This allows some optimizations, especially for large images that exceed a maximum
+ texture size of a GPU.
+
+ `SkImage::makeRasterImage` and `SkImage::makeNonTextureImage` now take a `GrDirectContext*` which
+ clients should supply for reading-back pixels from texture-backed images.
+ * `SkImageFilters::Image` now returns a non-null image filter if the input `sk_sp<SkImage>` is
+ null or the src rectangle is empty or does not overlap the image. The returned filter evaluates to
+ transparent black, which is equivalent to a null or empty image. Previously, returning a null image
+ filter would mean that the dynamic source image could be surprisingly injected into the filter
+ evaluation where it might not have been intended.
+ * `SkImageFilters::Magnifier(srcRect, inset)` is deprecated. These parameters do not provide enough
+ information for the implementation to correctly respond to canvas transform or participate accurately
+ in layer bounds planning.
+
+ A new `SkImageFilters::Magnifier` function is added that takes additional parameters: the outer
+ lens bounds and the actual zoom amount (instead of inconsistently reconstructing the target zoom
+ amount, which was the prior behavior). Additionally, the new factory accepts an SkSamplingOptions
+ to control the sampling quality.
+ * `SkImageFilters::Picture` now returns a non-null image filter if the input `sk_sp<SkPicture>` is
+ null. The returned filter evaluates to transparent black, which is equivalent to a null or empty
+ picture. Previously, returning a null image filter would mean that the dynamic source image could
+ be surprisingly injected into the filter evaluation where it might not have been intended.
+ * `SkImageFilters::Shader` now returns a non-null image filter if the input `sk_sp<SkShader>` is
+ null. The returned filter evaluates to transparent black, which is equivalent to a null or empty
+ shader. Previously, returning a null image filter would mean that the dynamic source image could
+ be surprisingly injected into the filter evaluation where it might not have been intended.
+ * `SkImageGenerator::MakeFromEncoded` has been removed from the public API.
+ `SkImage::DeferredFromEncoded` or `SkCodec::MakeFromData` should be used instead.
+ * `SkSurface::getBackendTexture` and `SkSurface::getBackendRenderTarget` have been deprecated and
+ replaced with `SkSurfaces::GetBackendTexture` and `SkSurfaces::GetBackendRenderTarget` respectively.
+ These are found in `include/gpu/ganesh/SkSurfaceGanesh.h`. The supporting enum `BackendHandleAccess`
+ has also been moved to `SkSurfaces::BackendHandleAccess` as an enum class, with shorter member
+ names.
+ * SkSurface factory methods have been moved to the SkSurfaces namespace. Many have been renamed to
+ be more succinct or self-consistent. Factory methods specific to the Ganesh GPU backend are
+ defined publicly in include/gpu/ganesh/SkSurfaceGanesh.h. The Metal Ganesh backend has some
+ specific factories in include/gpu/ganesh/mtl/SkSurfaceMetal.h.
+ * SkSurface::MakeFromAHardwareBuffer -> SkSurfaces::WrapAndroidHardwareBuffer
+ * SkSurface::MakeFromBackendRenderTarget -> SkSurfaces::WrapBackendRenderTarget
+ * SkSurface::MakeFromBackendTexture -> SkSurfaces::WrapBackendTexture
+ * SkSurface::MakeFromCAMetalLayer -> SkSurfaces::WrapCAMetalLayer
+ * SkSurface::MakeFromMTKView -> SkSurfaces::WrapMTKView
+ * SkSurface::MakeGraphite -> SkSurfaces::RenderTarget
+ * SkSurface::MakeGraphiteFromBackendTexture -> SkSurfaces::WrapBackendTexture
+ * SkSurface::MakeNull -> SkSurfaces::Null
+ * SkSurface::MakeRaster -> SkSurfaces::Raster
+ * SkSurface::MakeRasterDirect -> SkSurfaces::WrapPixels
+ * SkSurface::MakeRasterDirectReleaseProc -> SkSurfaces::WrapPixels
+ * SkSurface::MakeRasterN32Premul -> SkSurfaces::Raster (clients should make SkImageInfo)
+ * SkSurface::MakeRenderTarget -> SkSurfaces::RenderTarget
+
+* * *
+
Milestone 114
-------------
* The CPU backend for Runtime Effects has been rewritten. This may cause slight differences in
diff --git a/relnotes/skcodecs_register.md b/relnotes/skcodecs_register.md
deleted file mode 100644
index 7f7bc37..0000000
--- a/relnotes/skcodecs_register.md
+++ /dev/null
@@ -1,9 +0,0 @@
-Clients now need to register codecs which Skia should use to decode raw bytes. For example:
-`SkCodecs::Register(SkJpegDecoder::Decoder());`. Skia still provides many supported formats
-(see `include/codec/*Decoder.h`). Clients are free to specify their own, either supplementing
-the existing set or using a custom version instead of the one previously provided by default
-by Skia. See `SkCodecs::Decoder` for the necessary data to provide when using a custom decoder
-(in `include/codec/SkCodec.h`).
-
-To ease the transition, Skia will continue (for a short while) to register codecs unless
-`SK_DISABLE_LEGACY_INIT_DECODERS` is defined.
\ No newline at end of file
diff --git a/relnotes/skdrawable_picturesnapshot.md b/relnotes/skdrawable_picturesnapshot.md
deleted file mode 100644
index 6904928..0000000
--- a/relnotes/skdrawable_picturesnapshot.md
+++ /dev/null
@@ -1,4 +0,0 @@
-`SkDrawable::newPictureSnapshot` is removed. Instead, call `SkDrawable::makePictureSnapshot`.
-The old method returned a bare (but ref-counted) pointer, which was easy for clients to get wrong.
-The new method returns an `sk_sp<SkPicture>`, which is easier to handle, and consistent with the
-rest of skia.
\ No newline at end of file
diff --git a/relnotes/skgraphics_methods.md b/relnotes/skgraphics_methods.md
deleted file mode 100644
index 2d76ee8..0000000
--- a/relnotes/skgraphics_methods.md
+++ /dev/null
@@ -1,5 +0,0 @@
-`SkGraphics::PurgePinnedFontCache()` has been added to allow clients to
-explicitly trigger `SkStrikeCache` purge checks for `SkStrikes` with
-pinners. Defining `SK_STRIKE_CACHE_DOESNT_AUTO_CHECK_PINNERS` in the
-user configuration now disables automatic purge checking of strikes with
-pinners.
diff --git a/relnotes/skimage_graphite.md b/relnotes/skimage_graphite.md
deleted file mode 100644
index dd46cea..0000000
--- a/relnotes/skimage_graphite.md
+++ /dev/null
@@ -1,10 +0,0 @@
-The following SkImage factories have been moved to `include/gpu/graphite/Image.h`:
- - `SkImage::MakeGraphiteFromBackendTexture -> SkImages::AdoptTextureFrom`
- - `SkImage::MakeGraphiteFromYUVABackendTextures -> SkImages::TextureFromYUVATextures`
- - `SkImage::MakeGraphiteFromYUVAPixmaps -> SkImages::TextureFromYUVAPixmaps`
- - `SkImage::MakeGraphitePromiseTexture -> SkImages::PromiseTextureFrom`
-
-The SkImage method `makeTextureImage` has been moved to `SkImages::TextureFromImage`.
-
-`SkImage::RequiredImageProperties` has been renamed to `SkImage::RequiredProperties`,
-with fMipmapped turned into a boolean instead of the GPU enum.
\ No newline at end of file
diff --git a/relnotes/skimage_methods.md b/relnotes/skimage_methods.md
deleted file mode 100644
index b3d2fe0..0000000
--- a/relnotes/skimage_methods.md
+++ /dev/null
@@ -1,3 +0,0 @@
-`SkImage::makeColorSpace` and `SkImage::makeColorTypeAndColorSpace` now take a `GrDirectContext`
-as the first parameter. This should be supplied when dealing with texture-backed images and can
-be `nullptr` otherwise.
\ No newline at end of file
diff --git a/relnotes/skimage_subset.md b/relnotes/skimage_subset.md
deleted file mode 100644
index fee74dd..0000000
--- a/relnotes/skimage_subset.md
+++ /dev/null
@@ -1,14 +0,0 @@
-`SkImage::subset` now takes a `GrDirectContext*` as its first parameter (this can be `nullptr` for
-non-gpu backed images. Images which are backed by a codec or picture will not be turned into a GPU
-texture before being read. This should only impact picture-backed images, which may not be read
-correctly if the picture contain nested texture-backed images itself. To force a conversion to
-a texture, clients should call `SkImages::TextureFromImage`, passing in the image, and then call
-subset on the result. Documentation has been clarified that `SkImage::subset` will return a raster-
-backed image if the source is not backed by a texture, and texture-otherwise.
-
-`SkImages::SubsetTextureFrom` has been added to subset an image and explicitly return a texture-
-backed image. This allows some optimizations, especially for large images that exceed a maximum
-texture size of a GPU.
-
-`SkImage::makeRasterImage` and `SkImage::makeNonTextureImage` now take a `GrDirectContext*` which
-clients should supply for reading-back pixels from texture-backed images.
\ No newline at end of file
diff --git a/relnotes/skimagefilters_image.md b/relnotes/skimagefilters_image.md
deleted file mode 100644
index d7f07eb..0000000
--- a/relnotes/skimagefilters_image.md
+++ /dev/null
@@ -1,5 +0,0 @@
-`SkImageFilters::Image` now returns a non-null image filter if the input `sk_sp<SkImage>` is
-null or the src rectangle is empty or does not overlap the image. The returned filter evaluates to
-transparent black, which is equivalent to a null or empty image. Previously, returning a null image
-filter would mean that the dynamic source image could be surprisingly injected into the filter
-evaluation where it might not have been intended.
diff --git a/relnotes/skimagefilters_magnifier.md b/relnotes/skimagefilters_magnifier.md
deleted file mode 100644
index fd9ebce..0000000
--- a/relnotes/skimagefilters_magnifier.md
+++ /dev/null
@@ -1,8 +0,0 @@
-`SkImageFilters::Magnifier(srcRect, inset)` is deprecated. These parameters do not provide enough
-information for the implementation to correctly respond to canvas transform or participate accurately
-in layer bounds planning.
-
-A new `SkImageFilters::Magnifier` function is added that takes additional parameters: the outer
-lens bounds and the actual zoom amount (instead of inconsistently reconstructing the target zoom
-amount, which was the prior behavior). Additionally, the new factory accepts an SkSamplingOptions
-to control the sampling quality.
diff --git a/relnotes/skimagefilters_picture.md b/relnotes/skimagefilters_picture.md
deleted file mode 100644
index d7bea66..0000000
--- a/relnotes/skimagefilters_picture.md
+++ /dev/null
@@ -1,4 +0,0 @@
-`SkImageFilters::Picture` now returns a non-null image filter if the input `sk_sp<SkPicture>` is
-null. The returned filter evaluates to transparent black, which is equivalent to a null or empty
-picture. Previously, returning a null image filter would mean that the dynamic source image could
-be surprisingly injected into the filter evaluation where it might not have been intended.
diff --git a/relnotes/skimagefilters_shader.md b/relnotes/skimagefilters_shader.md
deleted file mode 100644
index e227ba7..0000000
--- a/relnotes/skimagefilters_shader.md
+++ /dev/null
@@ -1,4 +0,0 @@
-`SkImageFilters::Shader` now returns a non-null image filter if the input `sk_sp<SkShader>` is
-null. The returned filter evaluates to transparent black, which is equivalent to a null or empty
-shader. Previously, returning a null image filter would mean that the dynamic source image could
-be surprisingly injected into the filter evaluation where it might not have been intended.
diff --git a/relnotes/skimagegenerator_encoded.md b/relnotes/skimagegenerator_encoded.md
deleted file mode 100644
index 3691212..0000000
--- a/relnotes/skimagegenerator_encoded.md
+++ /dev/null
@@ -1,2 +0,0 @@
-`SkImageGenerator::MakeFromEncoded` has been removed from the public API.
-`SkImage::DeferredFromEncoded` or `SkCodec::MakeFromData` should be used instead.
\ No newline at end of file
diff --git a/relnotes/sksurface_backend.md b/relnotes/sksurface_backend.md
deleted file mode 100644
index 7c71c6b..0000000
--- a/relnotes/sksurface_backend.md
+++ /dev/null
@@ -1,5 +0,0 @@
-`SkSurface::getBackendTexture` and `SkSurface::getBackendRenderTarget` have been deprecated and
-replaced with `SkSurfaces::GetBackendTexture` and `SkSurfaces::GetBackendRenderTarget` respectively.
-These are found in `include/gpu/ganesh/SkSurfaceGanesh.h`. The supporting enum `BackendHandleAccess`
-has also been moved to `SkSurfaces::BackendHandleAccess` as an enum class, with shorter member
-names.
\ No newline at end of file
diff --git a/relnotes/sksurface_namespace.md b/relnotes/sksurface_namespace.md
deleted file mode 100644
index 854f85b..0000000
--- a/relnotes/sksurface_namespace.md
+++ /dev/null
@@ -1,18 +0,0 @@
-SkSurface factory methods have been moved to the SkSurfaces namespace. Many have been renamed to
-be more succinct or self-consistent. Factory methods specific to the Ganesh GPU backend are
-defined publicly in include/gpu/ganesh/SkSurfaceGanesh.h. The Metal Ganesh backend has some
-specific factories in include/gpu/ganesh/mtl/SkSurfaceMetal.h.
- * SkSurface::MakeFromAHardwareBuffer -> SkSurfaces::WrapAndroidHardwareBuffer
- * SkSurface::MakeFromBackendRenderTarget -> SkSurfaces::WrapBackendRenderTarget
- * SkSurface::MakeFromBackendTexture -> SkSurfaces::WrapBackendTexture
- * SkSurface::MakeFromCAMetalLayer -> SkSurfaces::WrapCAMetalLayer
- * SkSurface::MakeFromMTKView -> SkSurfaces::WrapMTKView
- * SkSurface::MakeGraphite -> SkSurfaces::RenderTarget
- * SkSurface::MakeGraphiteFromBackendTexture -> SkSurfaces::WrapBackendTexture
- * SkSurface::MakeNull -> SkSurfaces::Null
- * SkSurface::MakeRaster -> SkSurfaces::Raster
- * SkSurface::MakeRasterDirect -> SkSurfaces::WrapPixels
- * SkSurface::MakeRasterDirectReleaseProc -> SkSurfaces::WrapPixels
- * SkSurface::MakeRasterN32Premul -> SkSurfaces::Raster (clients should make SkImageInfo)
- * SkSurface::MakeRenderTarget -> SkSurfaces::RenderTarget
-