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
-