Skip to content

CoreImage iOS xcode27.0 b5

Alex Soto edited this page Aug 10, 2026 · 1 revision

#CoreImage.framework

diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h	2026-07-12 23:21:42
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h	2026-08-04 00:07:05
@@ -379,6 +379,7 @@
                                      inputs:(nullable NSArray<CIImage*>*)inputs
                                   arguments:(nullable NSDictionary<NSString*,id>*)args
                                       error:(NSError **)error
+    NS_SWIFT_NAME(apply(tiledExtent:inputs:arguments:))
 API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
 
 @end
@@ -544,6 +545,7 @@
                                                 format:(OSType)format
                                                  width:(size_t)width
                                                 height:(size_t)height
+    NS_SWIFT_NAME(temporarySurface(identifier:format:width:height:))
 API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
 
 /// Returns a temporary CVPixelBuffer that your Core Image Processor Kernel can use as scratch storage during processing.
@@ -574,7 +576,8 @@
                                                           width:(size_t)width
                                                          height:(size_t)height
                                                      attributes:(nullable NSDictionary *)attributes
-API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+    NS_SWIFT_NAME(temporaryPixelBuffer(identifier:format:width:height:attributes:))
+API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos) CF_RETURNS_NOT_RETAINED;
 
 @end
 
diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h	2026-07-11 03:20:34
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h	2026-08-04 12:03:53
@@ -72,41 +72,42 @@
     #endif
     {
         // Returns the pixel value produced from sampler at the position p, where p is specified in sampler space.
-        float4 sample(float2 p) const;
+        float4 sample(float2 p) const thread;
         
         // Returns the position in the coordinate space of the source that is associated with the position defined in working-space coordinates.
-        float2 transform(float2 p) const;
+        float2 transform(float2 p) const thread;
         
         // Returns the position, in sampler space, of the sampler that is associated with the current output pixel (that is, after any transformation matrix
         // associated with sampler is applied). The sample space refers to the coordinate space of that you are texturing from. Note that if your source data is tiled,
         // the sample coordinate will have an offset (dx/dy). You can convert a destination location to the sampler location using the transform function.
-        float2 coord() const;
+        float2 coord() const thread;
         
         // Returns the extent of the sampler in world coordinates, as a four-element vector [x, y, width, height].
-        float4 extent() const;
         
-        inline float2 origin() const { return extent().xy; }
-        inline float2 size() const { return extent().zw; }
         
+        float4 extent() const thread;
+        inline float2 origin() const thread { return extent().xy; }
+        inline float2 size() const thread { return extent().zw; }
+
 #ifdef __CIKERNEL_METAL_SUPPORTS_GATHER__
         // Returns four samples (placed in CCW order starting with sample to the lower left) that would be used for bilinear interpolation when sampling at the position p,
         // where p is specified in sampler space.
-        float4 gatherX(float2 p) const;
-        float4 gatherY(float2 p) const;
-        float4 gatherZ(float2 p) const;
-        float4 gatherW(float2 p) const;
-        
+        float4 gatherX(float2 p) const thread;
+        float4 gatherY(float2 p) const thread;
+        float4 gatherZ(float2 p) const thread;
+        float4 gatherW(float2 p) const thread;
+
         // Returns four (unordered) samples that would be used for bilinear interpolation when sampling at the position p, where p is specified in sampler space.
-        float4 gatherX_unordered(float2 p) const;
-        float4 gatherY_unordered(float2 p) const;
-        float4 gatherZ_unordered(float2 p) const;
-        float4 gatherW_unordered(float2 p) const;
+        float4 gatherX_unordered(float2 p) const thread;
+        float4 gatherY_unordered(float2 p) const thread;
+        float4 gatherZ_unordered(float2 p) const thread;
+        float4 gatherW_unordered(float2 p) const thread;
 #endif
         
     private:
         #if __CIKERNEL_METAL_VERSION__ >= 300
         friend Sampler make_sampler(texture2d<float, access::sample> t, metal::sampler s, constant float4x4& m, float2 dc );
-        Sampler(texture2d<float, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_)
+        Sampler(texture2d<float, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_) thread
             : t(t_), s(s_),m(m_), dc(dc_) {}
         #endif
         
@@ -124,39 +125,41 @@
     #endif
     {
         // Returns the pixel value produced from sampler at the position p, where p is specified in sampler space.
-        half4 sample(float2 p) const;
         
+        half4 sample(float2 p) const thread;
         // Returns the position in the coordinate space of the source that is associated with the position defined in working-space coordinates.
-        float2 transform(float2 p) const;
         
+        float2 transform(float2 p) const thread;
         // Returns the position, in sampler space, of the sampler that is associated with the current output pixel (that is, after any transformation matrix
         // associated with sampler is applied). The sample space refers to the coordinate space of that you are texturing from. Note that if your source data is tiled,
         // the sample coordinate will have an offset (dx/dy). You can convert a destination location to the sampler location using the transform function.
-        float2 coord() const;
         
+        float2 coord() const thread;
         // Returns the extent of the sampler in world coordinates, as a four-element vector [x, y, width, height].
-        float4 extent() const;
         
-        inline float2 origin() const { return extent().xy; }
-        inline float2 size() const { return extent().zw; }
         
+        float4 extent() const thread;
+        inline float2 origin() const thread { return extent().xy; }
+        inline float2 size() const thread { return extent().zw; }
+
         // Returns four samples (placed in CCW order starting with sample to the lower left) that would be used for bilinear interpolation when sampling at the position p,
         // where p is specified in sampler space.
-        half4 gatherX(float2 p) const;
-        half4 gatherY(float2 p) const;
-        half4 gatherZ(float2 p) const;
-        half4 gatherW(float2 p) const;
         
+        half4 gatherX(float2 p) const thread;
+        half4 gatherY(float2 p) const thread;
+        half4 gatherZ(float2 p) const thread;
+        half4 gatherW(float2 p) const thread;
+
         // Returns four (unordered) samples that would be used for bilinear interpolation when sampling at the position p, where p is specified in sampler space.
-        half4 gatherX_unordered(float2 p) const;
-        half4 gatherY_unordered(float2 p) const;
-        half4 gatherZ_unordered(float2 p) const;
-        half4 gatherW_unordered(float2 p) const;
+        half4 gatherX_unordered(float2 p) const thread;
+        half4 gatherY_unordered(float2 p) const thread;
+        half4 gatherZ_unordered(float2 p) const thread;
+        half4 gatherW_unordered(float2 p) const thread;
         
     private:
         #if __CIKERNEL_METAL_VERSION__ >= 300
         friend Sampler_h make_sampler(texture2d<half, access::sample> t, metal::sampler s, constant float4x4& m, float2 dc );
-        Sampler_h(texture2d<half, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_)
+        Sampler_h(texture2d<half, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_) thread
             : t(t_), s(s_),m(m_), dc(dc_) {}
         #endif
         
@@ -194,7 +197,7 @@
     {
         // Returns the position, in working space coordinates, of the pixel currently being computed.
         // The destination space refers to the coordinate space of the image you are rendering.
-        inline float2 coord() const { return c; }
+        inline float2 coord() const thread { return c; }
         
     private:
         float2 c;
@@ -211,15 +214,15 @@
         {
             // Returns the position, in working space coordinates, of the pixel currently being computed.
             // The destination space refers to the coordinate space of the image you are rendering.
-            inline float2 coord() const { return c; }
             
+            inline float2 coord() const thread { return c; }
             // Writes 4 color values to the destination texture for the current 2x2 group of pixels.
-            void write(float4 v0, float4 v1, float4 v2, float4 v3);
+            void write(float4 v0, float4 v1, float4 v2, float4 v3) thread;
             
         private:
             #if __CIKERNEL_METAL_VERSION__ >= 300
             friend group::Destination make_destination (float2 c, uint2 gid, float4 r, float4x4 m, metal::texture2d<float, access::write> t );
-            Destination(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<float, access::write> t_) : c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
+            Destination(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<float, access::write> t_) thread : c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
             #endif
             
             float2 c;
@@ -237,15 +240,15 @@
         {
             // Returns the position, in working space coordinates, of the pixel currently being computed.
             // The destination space refers to the coordinate space of the image you are rendering.
-            inline float2 coord() const { return c; }
             
+            inline float2 coord() const thread { return c; }
             // Writes 4 color values to the destination texture for the current 2x2 group of pixels.
-            void write(half4 v0, half4 v1, half4 v2, half4 v3);
+            void write(half4 v0, half4 v1, half4 v2, half4 v3) thread;
             
         private:
             #if __CIKERNEL_METAL_VERSION__ >= 300
             friend group::Destination_h make_destination (float2 c, uint2 gid, float4 r, float4x4 m, metal::texture2d<half, access::write> t );
-            Destination_h(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<half, access::write> t_) : c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
+            Destination_h(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<half, access::write> t_) thread : c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
             #endif
             
             float2 c;
diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h	2026-07-11 04:10:28
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h	2026-08-03 23:59:39
@@ -17,6 +17,7 @@
 @class NSURL;
 @class NSDictionary;
 @class NSData;
+@class NSProgress;
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -38,7 +39,19 @@
 @property(class, readonly) NSArray<NSString*>* supportedCameraModels;
 
 /* Returns a NSArray containing the names of all supported camera models that support the specified decoder version. */
-+ (NSArray<NSString*>*) supportedCameraModelsWithVersion:(CIRAWDecoderVersion)version API_AVAILABLE(macos(27.0), ios(27.0), visionos(27.0));
++ (NSArray<NSString*>*) supportedCameraModelsWithVersion:(CIRAWDecoderVersion)version
+    NS_SWIFT_NAME(supportedCameraModels(version:))
+    API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0));
+
+/* Downloads any on-demand resources required to decode this filter's image using its current decoderVersion, if they aren't already present.
+   Returns an NSProgress that can be used to track or cancel the download.
+   If 'timeout' elapses before the download finishes, completionHandler is called with a timeout error.
+   completionHandler is called with a nil error on success (whether or not a download was actually needed), or a non-nil error if the download failed or timed out.
+   The completion handler is called on a queue of CoreImage's choosing; dispatch to your own queue if you need one (e.g. the main queue for UI work). */
+- (NSProgress *) downloadResourcesWithTimeout:(NSTimeInterval)timeout
+                             completionHandler:(void (^)(NSError * _Nullable error))completionHandler
+    NS_SWIFT_NAME(downloadResources(timeout:completionHandler:))
+    API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0));
 
 /* Array of all supported decoder versions for the given image type, sorted in increasingly newer order. All entries would represent a valid version identifier set to 'decoderVersion'.*/
 @property(readonly) NSArray<CIRAWDecoderVersion>* supportedDecoderVersions;

Clone this wiki locally