[CoreImage] Update bindings up to Xcode 27.0 Beta 3#26117
Conversation
Bind the Core Image APIs introduced in Xcode 27 Beta 3 across iOS, tvOS, macOS, and Mac Catalyst. - Expose new CIImage decoding options and image-processor scratch resources. - Add RAW camera-model and despeckle APIs, tiled processing, and render estimates. - Preserve compatibility for new required protocol members with XAMCORE_5_0 guards and xtro exceptions. - Remove the resolved platform todo baselines and recognize the new public API terminology in introspection tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1a3a52f5-c251-40fe-a6b9-0e684b4b9f17
There was a problem hiding this comment.
Pull request overview
This PR updates the CoreImage binding surface to match new APIs in Xcode 27.0 Beta 3, and keeps the repository’s validation tooling (xtro + introspection typo checks) aligned with the new terms/protocol requirements.
Changes:
- Added new CoreImage bindings in
src/coreimage.cs(RAW camera-model querying + despeckle controls, CIImage decode options/keys, processor scratch resources, tiled processing, render estimation metrics). - Updated xtro expectations by removing resolved CoreImage
.todofiles and adding new protocol-required-member exceptions tocommon-CoreImage.ignore. - Allowed the new “Despeckle” term in
ApiTypoTestso introspection spelling checks accept the new API terminology.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreImage.todo | Removed resolved xtro todo entries for CoreImage on tvOS. |
| tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreImage.todo | Removed resolved xtro todo entries for CoreImage on macOS. |
| tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreImage.todo | Removed resolved xtro todo entries for CoreImage on Mac Catalyst. |
| tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreImage.todo | Removed resolved xtro todo entries for CoreImage on iOS. |
| tests/xtro-sharpie/api-annotations-dotnet/common-CoreImage.ignore | Added ignore entries for newly-@required protocol members to avoid false-positive breaking-change reports. |
| tests/introspection/ApiTypoTest.cs | Added “Despeckle” to the allowed typo/term list for API naming validation. |
| src/coreimage.cs | Added new Xcode 27 Beta 3 CoreImage bindings and availability gating across platforms. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| #if XAMCORE_5_0 | ||
| [Abstract] | ||
| #endif |
| /// <summary>Gets a temporary pixel buffer for use as scratch storage during image processing.</summary> | ||
| /// <returns>A temporary pixel buffer, or <see langword="null" /> if one could not be created.</returns> | ||
| /// <remarks>The returned pixel buffer is valid only for the duration of the current image processor invocation.</remarks> | ||
| #if XAMCORE_5_0 |
This comment has been minimized.
This comment has been minimized.
Make the Xcode 27 CIImageProcessorOutput scratch-resource methods unconditionally abstract now that adding [Abstract] no longer requires a compatibility guard. Remove the corresponding xtro exceptions because the managed protocol now matches the native required members. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1a3a52f5-c251-40fe-a6b9-0e684b4b9f17
This comment has been minimized.
This comment has been minimized.
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🚀 [CI Build #a42ad12] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 195 tests passed 🎉 Tests counts✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
Summary
The despeckle members are explicitly gated to 27.0 because they are absent from the Xcode 26.4 and 26.5 SDKs, even though the Xcode 27 Beta 3 headers omit member-level availability annotations.
Validation
make worldbefore and after the binding changes