50 actionable items · 16 already bound · 29 no action needed
m147 (full scan) · Generated 2026-04-29
Legend
Status (squares)
| Symbol | Meaning | Count |
|---|---|---|
| 🟥 | Missing - no C API or C# wrapper | 42 |
| 🟨 | Partial - C API exists, needs C# wrapper | 4 |
| 🟧 | Action needed - wraps deprecated/removed API | 4 |
| 🟩 | Already bound | 16 |
| ⬜ | No action needed | 29 |
Priority (circles)
| Symbol | Meaning |
|---|---|
| 🔴 | Critical - will break on next Skia bump |
| 🟠 | High - major capability or highly requested |
| 🟡 | Medium - useful addition |
| ⚪ | Low - minor utility |
| Impact | Count | What it means |
|---|---|---|
| 🚀 Transformative | 2 | Unlocks entirely new app categories |
| ⭐ Significant | 20 | Major visible improvement users notice immediately |
| 📦 Moderate | 22 | Useful gap fill, improves safety or completeness |
| 🔹 Minor | 6 | Small utility or completeness item |
🟠 m98 RuntimeShader image filters
SkImageFilters::RuntimeShader exists upstream with single-child, multi-child, and sample-radius variants, but no matching sk_imagefilter_* runtime entry points or SKImageFilter runtime factory exist in the audited trees.
C++:
SkImageFilters::SkImageFilters::RuntimeShader(...)
User value: Unlocks custom programmable image-filter graphs driven by SkSL instead of only shader or paint stages.
Milestones: m98, m98, m99, m116
Effort: large
Skill:api-add-review
Notes: Verified upstream RuntimeShader overloads in SkImageFilters.h lines ~402-462. No runtime shader functions were found in sk_imagefilter.h/.cpp, and no runtime factory was found in SKImageFilter.cs.
🟠 m106 SkMesh API for custom vertex/fragment programs
New API to draw vertex meshes with custom attributes and varyings using SkSL. Mesh data created on a GrDirectContext to avoid re-uploads.
C++:
SkMesh
User value: Custom 2D mesh rendering with SkSL vertex/fragment programs — unlocks 3D-ish effects, custom warping, GPU-accelerated visualizations.
Milestones: m106, m106, m109, m110, m119, m120
Effort: large
Skill:api-add-review
🟠 m106 AVIF decoding via libavif
Skia gained native AVIF decoding via libavif.
User value: Decode AVIF images natively (modern, smaller-than-JPEG/WebP, HDR-capable).
Milestones: m106
Effort: small
Skill:api-add-review
Notes: SKEncodedImageFormat.Avif enum value exists; verify libavif is enabled in the SkiaSharp native build and that SKCodec.Create handles AVIF.
🟠 m145 Codec decode-memory budget
SkCodec::Options gained fMaxDecodeMemory and kOutOfMemory in m145, but the audited C API exposes only zero-init/subset/frame/prior options and the C# SKCodecOptions surface mirrors that older shape.
C++:
SkCodec::SkCodec::Options::fMaxDecodeMemory / SkCodec::Result::kOutOfMemory
User value: Lets apps cap worst-case decode memory and fail predictably on hostile or oversized images.
Milestones: m145
Effort: medium
Skill:api-add-review
Notes: Verified in upstream SkCodec.h; local sk_codec_options_t in sk_types.h only has fZeroInitialized, fSubset, fFrameIndex, and fPriorFrame, and SKCodec.cs builds the same reduced option set.
🟠 m114 Gradient interpolation color spaces and hue methods
Gradient shaders accept SkGradientShader::Interpolation specifying the interpolation color space (sRGB linear, OKLab, OKLCh, HSL, HWB, …) and CSS-style hue method (shorter/longer/increasing/decreasing).
User value: CSS Color Level 4 gradients — modern, perceptually-uniform color interpolation.
Milestones: m114
Effort: medium
Skill:api-add-review
🟠 m142 HDR metadata in PNG decoder/encoder
SkPngDecoder, SkPngRustDecoder and SkPngEncoder gained HDR metadata support, plus skhdr::Metadata, ContentLightLevelInfo and MasteringDisplayColorVolume structures.
User value: Round-trip HDR PNGs with content-light-level and mastering-display metadata.
Milestones: m142
Effort: large
Skill:api-add-review
🟠 m131 SaveLayerRec backdrop tile mode
SaveLayerRec can now specify a SkTileMode to apply to backdrop content when the new layer's effects would sample outside the previous layer's image. Improves quality of backdrop blurs near layer edges.
C++:
SkCanvas::SaveLayerRec
User value: Avoid edge artifacts in backdrop blurs (frosted glass, depth-of-field).
Milestones: m131
Effort: small
Skill:api-add-review
Notes: C API sk_canvas_savelayerrec_t struct does NOT include backdropTileMode; C# SKCanvasSaveLayerRec also missing it. Quick win to extend struct + binding.
🟠 m131 SaveLayerRec missing colorSpace and backdropTileMode
C API sk_canvas_savelayerrec_t struct lacks the backdropTileMode (m131) and color-space (m120-era) fields. Limits the quality of backdrop blur effects.
C++:
SkCanvas::SaveLayerRec
Milestones: m131
Effort: small
Skill:api-add-review
Notes: Verified header sk_types.h: sk_canvas_savelayerrec_t has only fBounds/fPaint/fBackdrop/fFlags. Need to add fBackdropTileMode and (if appropriate) fColorSpace.
🟠 m141 Shader working-color-space override
SkShader::makeWithWorkingColorSpace gained the output-color-space override noted in m141, but no matching C API entry point or C# shader wrapper exists in the audited trees.
C++:
SkShader::SkShader::makeWithWorkingColorSpace(sk_sp<SkColorSpace> inputCS, sk_sp<SkColorSpace> outputCS=nullptr)
User value: Allows custom shaders to participate correctly in color-space conversion instead of assuming destination-space output.
Milestones: m141
Effort: medium
Skill:api-add-review
Notes: Verified upstream makeWithWorkingColorSpace() in SkShader.h lines ~70-90. No working-color-space symbol exists in sk_shader.h/.cpp or SKShader.cs.
🟠 m145 SkCodec::Options::fMaxDecodeMemory
SkCodec::Options now contains fMaxDecodeMemory. If decoding would exceed it, the codec returns nullptr and a new kOutOfMemory result.
Skia API:
SkCodec::Options::fMaxDecodeMemory
C++:SkCodec::Options
User value: Defend apps against decompression bombs by capping memory used per decode.
Milestones: m145
Effort: small
Skill:api-add-review
🟠 m128 SkImage::makeScaled
SkImage gained makeScaled in m128, but the audited C API has no sk_image_make_scaled function and SKImage.cs exposes only ScalePixels helpers rather than a new SKImage-returning API.
C++:
SkImage::SkImage::makeScaled
User value: One-call high-quality image rescaling without manual surface plumbing.
Milestones: m128
Effort: small
Skill:api-add-review
🟠 m119 SkImageFilters::Crop
New Crop(SkRect, SkTileMode, sk_sp) image filter that crops the wrapped filter's output and applies a tile mode when sampling outside the crop.
User value: Compose tiled/clamped/repeating image-filter effects with explicit crop bounds.
Milestones: m119
Effort: small
Skill:api-add-review
🟠 m98 SkImageFilters::RuntimeShader
Image filter variant of runtime effects, exposing SkSL effects in a filter graph.
User value: Use SkSL runtime effects as image filters in a graph.
Milestones: m98
Effort: medium
Skill:api-add-review
🟠 m106 Wide-gamut color-filter blend factory
SkColorFilters::Blend(const SkColor4f&, sk_sp, SkBlendMode) is public upstream, but the audited C API has only sk_colorfilter_new_mode(sk_color_t, ...) and SKColorFilter exposes only CreateBlendMode(SKColor, ...).
C++:
SkColorFilters::SkColorFilters::Blend(const SkColor4f&, sk_sp<SkColorSpace>, SkBlendMode)
User value: Enables color-filter math in explicit color spaces instead of forcing 8-bit SKColor inputs.
Milestones: m106
Effort: medium
Skill:api-add-review
Notes: Verified upstream Blend() overloads in SkColorFilter.h lines ~90-93. Local sk_colorfilter.h/.cpp and SKColorFilter.cs only expose the 8-bit SKColor form.
🟠 m129 Wide-gamut drop-shadow overloads
Since m129, SkImageFilters::DropShadow and DropShadowOnly accept SkColor4f plus SkColorSpace, but the audited C API and SKImageFilter wrappers still expose only SKColor-based overloads.
C++:
SkImageFilters::DropShadow(..., SkColor4f, sk_sp<SkColorSpace>, ...) / DropShadowOnly(...)
User value: Needed for HDR and wide-gamut shadow colors without truncating to 8-bit sRGB SKColor.
Milestones: m129
Effort: medium
Skill:api-add-review
Notes: Verified color-aware overloads in upstream SkImageFilters.h lines ~201-243. Local sk_imagefilter.h/.cpp and SKImageFilter.cs only expose SKColor overloads.
🟠 m117 YUVA420 async readback with alpha
Upstream m117 added asyncRescaleAndReadPixelsYUVA420 on both SkImage and SkSurface, but the audited C API and C# bindings expose no YUV420/YUVA420 async readback entry points.
C++:
SkImage / SkSurface::asyncRescaleAndReadPixelsYUVA420(...)
User value: Important for video, camera, and encoder pipelines that need GPU readback including alpha without an RGBA round-trip.
Milestones: m117
Effort: large
Skill:api-add-review
Notes: Verified upstream methods in SkImage.h and SkSurface.h. Grep found no async rescale/read YUV420 or YUVA420 symbols in the audited C API or C# wrapper files.
🟡 m107 Animated WebP encoding
SkWebpEncoder gained support for encoding animated WebP images.
C++:
SkWebpEncoder
User value: Author animated WebP files (loops, intros, sticker animations).
Milestones: m107
Effort: medium
Skill:api-add-review
🟡 m103 Anisotropic filtering in SkSamplingOptions
SkSamplingOptions gained anisotropic filtering support (GPU only).
User value: Sharper textures at oblique angles in 3D-style draws.
Milestones: m103
Effort: small
🟡 m98 JPEG XL (limited) decoding
Limited JPEG XL support added in Skia.
User value: Decode JPEG XL images (better compression than JPEG, modern HDR-friendly format).
Milestones: m98
Effort: medium
Notes: SKEncodedImageFormat.Jpegxl enum value exists; SkiaSharp native build does not currently link a JPEG XL decoder library.
🟡 m117 SkTiledImageUtils for large bitmaps
New SkTiledImageUtils namespace provides DrawImage / DrawImageRect that tile bitmap-backed SkImages too large for a single GPU upload.
User value: Render very large bitmaps without manual tiling logic.
Milestones: m117
Effort: medium
Skill:api-add-review
🟡 m123 Vulkan VK_EXT_device_fault callback
Vulkan backend invokes a client-provided callback on VK_ERROR_DEVICE_LOST, with extended debug info if VK_EXT_device_fault is enabled.
C++:
GrVkBackendContext
User value: Diagnose Vulkan device-lost crashes in production.
Milestones: m123
Effort: medium
Skill:api-add-review
🟡 m145 skhdr::Agtm — SMPTE ST 2094-50 Adaptive Global Tone Mapping
New AGTM HDR metadata parsing/serialization with a tone-mapping SkColorFilter. Lets clients consume embedded HDR tone-mapping metadata.
C++:
skhdr::Agtm
User value: Display HDR images with proper SDR fallback using upstream-standard adaptive tone mapping.
Milestones: m145
Effort: large
Skill:api-add-review
🟠 m130 SkColorFilter::filterColor removed
filterColor() removed from SkColorFilter; use filterColor4f() instead.
Milestones: m130
Skill:issue-fix
Notes: If SKColorFilter currently calls sk_colorfilter_filter_color, the C shim must be migrated to filterColor4f.
🟠 m122 SkFontMgr::RefDefault() removed
The static default-font-manager accessor was deleted. Clients must own and pass an SkFontMgr explicitly.
User value: If we still call into the removed API, SkiaSharp will break on the next Skia bump.
Milestones: m122
Skill:issue-fix
Notes: SkiaSharp's SKFontManager.Default uses a platform-specific factory under the hood; verify no path remains that calls RefDefault on the C++ side.
🟡 m125 Bitmap color-space reassignment
SkBitmap::setColorSpace landed in m125, but the audited C API exposes no bitmap colorspace mutator and SKBitmap only reports ColorSpace via Info.
C++:
SkBitmap::SkBitmap::setColorSpace(sk_sp<SkColorSpace>)
User value: Allows reinterpretation of existing bitmap pixel data in a new color space without rebuilding the bitmap.
Milestones: m125
Effort: small
Skill:api-add-review
Notes: Verified upstream setColorSpace() in SkBitmap.h. No setColorSpace symbol appears in sk_bitmap.h/.cpp, and SKBitmap.cs only exposes a read-only ColorSpace derived from Info.
🟡 m99 Multiple-child RuntimeShader image filter
A new variant of SkImageFilters::RuntimeShader supports multiple child nodes.
Milestones: m99
Effort: medium
🟡 m132 SkCodec::hasHighBitDepthEncodedData()
New SkCodec method reports whether the encoded image data is high bit-depth (e.g., 10/12-bit AVIF, 16-bit PNG).
User value: Decide whether to allocate F16/16-bit destination surfaces to preserve HDR/high bit-depth fidelity.
Milestones: m132
Effort: trivial
Skill:api-add-review
🟡 m135 SkCodec::isAnimated()
New isAnimated() method disambiguates getRepetitionCount()==0 (was it animated with infinite repetition or just a still image?).
User value: Reliably detect animated images (GIF/WebP/APNG) without relying on repetition count semantics.
Milestones: m135
Effort: trivial
Skill:api-add-review
🟡 m142 SkPngRustDecoder/Encoder are official public API
Rust-backed PNG decoder/encoder graduated from experimental to officially supported public API.
C++:
SkPngRustDecoder
User value: Memory-safe PNG decoding option.
Milestones: m142
Effort: large
🟡 m112 SkRuntimeColorFilterBuilder
New helper class for building color filters from runtime effects, analogous to SkRuntimeShaderBuilder.
C++:
SkRuntimeColorFilterBuilder
User value: Build runtime color filters as easily as runtime shaders.
Milestones: m112
Effort: small
Skill:api-add-review
🟡 m112 SkShaders::CoordClamp
Wraps another shader and clamps the coordinates passed to it to a rectangle.
User value: Constrain shader sampling to a sub-rectangle without using image filters.
Milestones: m112
Effort: trivial
Skill:api-add-review
🟡 m119 Standalone Crop image filter
SkImageFilters::Crop was introduced in m119, but the audited C API has no crop factory and SKImageFilter.cs has no CreateCrop-style wrapper.
C++:
SkImageFilters::SkImageFilters::Crop(const SkRect&, SkTileMode, sk_sp<SkImageFilter>)
User value: Gives filter graphs an explicit crop node with tile-mode control instead of overloading cropRect on unrelated factories.
Milestones: m119
Effort: small
Skill:api-add-review
Notes: Verified upstream Crop() in SkImageFilters.h lines ~149-168. No crop symbol exists in sk_imagefilter.h/.cpp, and no Crop factory exists in SKImageFilter.cs.
🟡 m148 kR16_float_SkColorType color type
New single-channel red color type holding f16 (half-float) values, analogous to kAlpha16_float. Enables HDR/scientific imagery in red channel.
Skia API:
kR16_float_SkColorType
C++:SkColorType
User value: Enables a new single-channel float color type useful for HDR data, normal/heightmaps stored in red channel, and scientific imagery.
Milestones: m148
Effort: small
Skill:api-add-review
⚪ m108 Custom ICC profiles in encoders
Support for specifying a custom ICC profile in SkJpegEncoder, SkPngEncoder and SkWebpEncoder.
Milestones: m108
Notes: Added in m108; later REMOVED in m142 (fICCProfile fields dropped). Net binding gap is correctly absent.
⚪ m112 JPEG XMP metadata + YUVA encoding
SkJpegEncoder::Options gains XMP metadata; SkJpegEncoder can encode SkYUVAPixmaps directly.
Milestones: m112
Effort: small
⚪ m104 SkBitmap::getColor4f / SkPixmap::getColor4f
New functions returning float color values directly.
Milestones: m104
Effort: trivial
⚪ m124 SkCodecs::DeferredImage
New factory similar to SkImages::DeferredFromEncodedData but accepts an SkCodec directly, removing the dependency on compiled-in codecs.
Milestones: m124
Effort: small
⚪ m106 SkColorFilters::Blend with SkColor4f + colorspace
New overload accepting SkColor4f and SkColorSpace.
Milestones: m106
Effort: small
⚪ m116 SkColorTable for SkColorFilters::Table
New public SkColorTable type owns the lookup tables passed into SkColorFilters::Table, allowing memory sharing.
C++:
SkColorTable
Milestones: m116
Effort: small
⚪ m143 SkPngRustEncoder public APIs
Public APIs added on SkPngRustEncoder for encoding SkImage/SkPixmap into SkData.
C++:
SkPngRustEncoder
Milestones: m143
Effort: medium
Notes: SkiaSharp uses libpng-based encoder; switching is a build-flag/dependency decision.
⚪ m141 SkShader::makeWithWorkingColorSpace optional output color space
makeWithWorkingColorSpace now accepts an optional output color space, letting shaders inform Skia of color-space changes they apply.
Milestones: m141
Effort: small
⚪ m100 SkSurface::resolveMSAA
Force Skia to resolve MSAA draws (useful when wrapping client texture as resolve target).
Milestones: m100
Effort: trivial
⚪ m139 VulkanPreferredFeatures helper
New API to auto-query and add Vulkan extensions/features that Skia benefits from. Auto-opts in to future Skia improvements.
C++:
VulkanPreferredFeatures
Milestones: m139
Effort: medium
⚪ m117 asyncRescaleAndReadPixelsYUVA420
Added on SkImage/SkSurface — same as the YUV420 variant but returns a fourth alpha plane at full resolution.
Milestones: m117
Effort: medium
🟡 m116 SkImageFilters::Image requires SkSamplingOptions
Single-argument SkImageFilters::Image(sk_sp) factory removed; sampling options are now mandatory.
Milestones: m116
Notes: Verify SkiaSharp's CreateImage overloads pass sampling options to the C API.
⚪ m104 SkCanvas::getBaseProps / getTopProps
getBaseProps replaces deprecated getProps; getTopProps returns surface props of the active layer.
Milestones: m104
Effort: trivial
⚪ m117 SkCanvas::saveLayerAlphaf
Float-precision overload of saveLayerAlpha.
User value: Set layer alpha with float precision, matching modern rendering pipelines.
Milestones: m117
Effort: trivial
⚪ m146 SkColorSpacePrimaries::operator==
Added equality comparison for SkColorSpacePrimaries.
User value: Compare two color space primaries directly.
Milestones: m146
Effort: trivial
⚪ m145 SkData::Equals helper
Adds SkData::Equals to compare two SkData instances (handles nullptr).
User value: Convenience for content-equality checks on encoded blobs.
Milestones: m145
Effort: trivial
⚪ m109 SkImage::RescaleMode::kLinear
Single-pass linear rescale mode for async rescale/readback APIs (faster, lower quality than kRepeatedLinear).
Milestones: m109
Effort: trivial
These Skia features are fully available in SkiaSharp.
- GrContext split into GrDirectContext / GrRecordingContext (m88) - GrContext was replaced by GrDirectContext (full functionality) and GrRecordingContext (DDL playback)
- Lighting image filters: 4 separate factories already bound - DistantLitDiffuse/Specular, PointLitDiffuse/Specular, SpotLitDiffuse/Specular all have C API entries
- SKPathBuilder is now the recommended path-building API (m147) - SkiaSharp m147 work added SKPathBuilder bindings ahead of SkPath becoming immutable upstream (m143).
- SkColorSpace::MakeCICP (m133) - Create an SkColorSpace from CICP code points per Rec. ITU-T H.273.
- SkFont::getTypeface no longer returns null (m122) - getTypeface() now returns an empty typeface instead of null when none was set. Removes a common null
- SkImage factories moved to SkImages namespace (m115) - SkImage::Make* factory functions migrated to SkImages:: namespace with renamed forms (DeferredFromEn
- SkImage namespace migration (m113) - SkImage::CompressionType renamed to SkTextureCompressionType; SkImage factories moved to SkImages na
- SkImage::makeRawShader (m98) - Creates 'raw' shaders for non-color image data (normals/material/heightmaps): no color-space convers
- SkImage::refEncodedData returns const SkData* (m144) - refEncodedData() now returns pointer-to-const SkData, signaling that the underlying bytes are read-o
- SkImageFilters::Blend factory (m88) - SkImageFilters::Blend replaces deprecated SkImageFilters::Xfermode with matching naming.
- SkPaint::getFillPath replaced (m110) - Functionality moved to skpathutils::FillPathWithPaint in include/core/SkPathUtils.h.
- SkParsePath::ToSVGString returns string (m110) - ToSVGString now returns a string rather than mutating an out parameter.
- SkPath geometry becoming immutable (m143) - SkPath is migrating to remove mutating methods (moveTo, lineTo, etc). Path creation goes through SkP
- SkPathBuilder accepted by more path utilities (m146) - SkContourMeasure::getSegment, SkPathEffect::filterPath, SkPathMeasure::getSegment and skpathutils::F
- SkPathBuilder::rArcTo aligned with arcTo (m143) - Relative arcTo updated to align with absolute arcTo signature.
- kR16_unorm_SkColorType color type (m144) - New 16-bit-per-channel unsigned normalized red color type added.
Internal Skia changes, automatic engine improvements, or correctly absent APIs.
- N/A 2 GiB image/surface size cap (m98) - Surfaces and images now hard-capped at just under 2GB to avoid CPU indexing bugs.
- N/A AVIF support in SkHeifCodec (m88) - HEIF codec gained AVIF support (Android NDK path).
- N/A C++17 / iOS 11 baseline (m100) - Upstream m100 raised the public baseline to C++17 and iOS 11, which matters for SkiaSharp native dep
- N/A Codec registration model (SkCodecs::Register) (m115) - Clients must register codecs they want Skia to use (SkJpegDecoder::Decoder() etc.). Legacy auto-regi
- N/A DNG SDK 1.7.1 support (m139) - SkRawCodec updated to support DNG SDK versions 1.4 and 1.7.1 via SK_DNG_VERSION.
- N/A GrContextOptions::fSharpenMipmappedTextures restored (m131) - Mipmap sharpening flag is back, on by default. Higher quality mipmapped texture sampling.
- 🚫 ICC profile fields removed from encoder Options (m142) - fICCProfile and fICCProfileDescription removed from SkPngEncoder, SkJpegEncoder, SkWebpEncoder Optio
- N/A More color spaces for gradient interpolation (m134) - A98 RGB, ProPhoto RGB, Display P3 and Rec2020 color spaces can now be used as gradient interpolation
- 🚫 Path effects removed (Merge/Matrix/Stroke/StrokeAndFill) (m119) - SkMergePathEffect, SkMatrixPathEffect, SkStrokePathEffect, SkStrokeAndFillPathEffect removed from pu
- N/A Perlin noise: rotation-correct + raster speedup (m124) - MakeFractalNoise and MakeTurbulence now rotate properly under transforms; CPU performance significan
- N/A SK_CANVAS_SAVE_RESTORE_PREALLOC_COUNT tunable (m133) - New build define lets clients tune SkCanvas save() preallocation. Defaults to ~3KB; reducing it save
- N/A SK_SUPPORT_UNSPANNED_APIS removed (m147) - The SK_SUPPORT_UNSPANNED_APIS define is removed; APIs are span-only going forward. C API shims must
- 🚫 SkCodec::getEncodedData removal (m147) - Upstream m147 removed SkCodec::getEncodedData() from the public API. Grepping the audited C API and
- 🚫 SkCodec::getEncodedData() removed (m147) - getEncodedData() has been removed from the public SkCodec API. Clients must hold their own SkData re
- N/A SkCodec::getImage respects EXIF orientation (m123) - getImage() now applies the encoded origin (e.g. EXIF rotation), so JPEGs come out the right way up.
- N/A SkGradientShader.h removed (use SkGradient.h) (m146) - The header SkGradientShader.h was removed in favor of SkGradient.h factory functions for gradient sh
- 🚫 SkImageFilters::AlphaThreshold removed (m116) - AlphaThreshold removed; replace with Blend(kSrcIn, input, Picture(region)).
- N/A SkImages::WrapTexture no longer requires SkColorType (m148) - WrapTexture (Graphite/Ganesh) automatically picks a compatible color type from the texture format, a
- N/A SkNamedTransferFn::kHLG and kPQ use new skcms representations (m141) - kHLG and kPQ transfer functions migrated to new skcms representations; SkColorSpace::MakeCICP automa
- N/A SkNamedTransferFn::kRec709 → BT.1886 gamma 2.4 (m142) - kRec709 transfer function now matches the pure gamma-2.4 definition from ITU-R BT.1886. Affects tran
- 🚫 SkPath::asArc() removed (m141) - SkPath::asArc removed; path is no longer queryable as an arc.
- 🚫 SkPathEffect::DashType / DashInfo / asADash removed (m132) - DashType, DashInfo and asADash removed from public SkPathEffect API.
- N/A SkToBool / SkBackingFit / SkMath removed from public API (m111) - Several internal helpers (SkToBool, SkAbs32, SkAlign*, SkBackingFit, SkLeftShift, SkMath.h, SK_MaxS3
- N/A Skia requires C++17 (m100) - Skia now requires C++17 standard library.
- N/A Texture wrapping infers color type (m148) - Upstream m148 removes the need to specify an SkColorType when wrapping textures; Skia now infers a c
- N/A Vulkan 1.1 minimum (m139) - Ganesh's Vulkan implementation now requires Vulkan 1.1 minimum.
- 🚫 approximateFilteredBounds removed from SkMaskFilter (m133) - SkMaskFilter::approximateFilteredBounds was removed.
- N/A iOS 12 and macOS 10.15 dropped (m139) - Skia removed support for iOS 12 and macOS 10.15.
- N/A toLinearSrgb / fromLinearSrgb intrinsics in SkSL (m99) - Two new SkSL intrinsics convert vec3 between the working color space and linear sRGB. Crucial for co