Skip to content

[CoreImage] Update bindings up to Xcode 27.0 Beta 3#26117

Merged
dalexsoto merged 3 commits into
xcode27.0from
dev/alex/xc27-CoreImage
Jul 17, 2026
Merged

[CoreImage] Update bindings up to Xcode 27.0 Beta 3#26117
dalexsoto merged 3 commits into
xcode27.0from
dev/alex/xc27-CoreImage

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • Bind the Core Image APIs introduced in Xcode 27 Beta 3 across iOS, tvOS, macOS, and Mac Catalyst.
  • Add CIImage decoding options, image-processor scratch resources, tiled processing, RAW camera-model and despeckle controls, and render estimation metrics.
  • Preserve compatibility for new required protocol members with XAMCORE_5_0 guards and matching xtro exceptions.
  • Remove all resolved CoreImage todo files and allow the new Despeckle API terminology in introspection tests.

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 world before and after the binding changes
  • Clean xtro classification: sanity passed
  • Clean cecil suite: 112 passed, 4 skipped, 0 failed
  • iOS 27 introspection: 44/44 passed
  • tvOS 27 introspection: 43/43 passed
  • macOS introspection: 32/32 passed, 2 host-version-gated
  • Mac Catalyst introspection: 39/39 passed, 4 expected ignores
  • App-size suite: 0 failed; all 16 cases intentionally skipped on beta Xcode

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
Copilot AI review requested due to automatic review settings July 15, 2026 18:23
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 15, 2026
@dalexsoto
dalexsoto requested a review from rolfbjarne July 15, 2026 18:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 .todo files and adding new protocol-required-member exceptions to common-CoreImage.ignore.
  • Allowed the new “Despeckle” term in ApiTypoTest so 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.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

Comment thread src/coreimage.cs Outdated
Comment on lines +4732 to +4734
#if XAMCORE_5_0
[Abstract]
#endif

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need for #if XAMCORE_5_0

Comment thread src/coreimage.cs Outdated
/// <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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

@vs-mobiletools-engineering-service2

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
@dalexsoto
dalexsoto enabled auto-merge (squash) July 16, 2026 16:22
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: a42ad12b88fe79f0a044ff28346e8713085d9521 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [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
✅ cecil: All 1 tests passed. [attempt 3] Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 18 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ monotouch (macOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 19 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download
⚠️ Tests on macOS Golden Gate (27): Tests skipped, incorrect beta version. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: a42ad12b88fe79f0a044ff28346e8713085d9521 [PR build]

@dalexsoto
dalexsoto merged commit 28b6c6a into xcode27.0 Jul 17, 2026
55 checks passed
@dalexsoto
dalexsoto deleted the dev/alex/xc27-CoreImage branch July 17, 2026 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants