Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docs/api/ARKit/ARSessionDelegate_Extensions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<Documentation>
<Docs DocId="M:ARKit.ARSessionDelegate_Extensions.DidUpdateFrame(ARKit.IARSessionDelegate,ARKit.ARSession,ARKit.ARFrame)">

<param name="session">The session that is supplying the information for the event.</param>
<param name="frame">The frame that was updated.</param>
<summary>Indicates that <paramref name="frame" /> has been updated due to tracking.</summary>
<remarks>
<para>Developers who override this method must be sure to call <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=System%20IDisposable%20Dispose&amp;scope=Xamarin" title="M:System.IDisposable.Dispose*">M:System.IDisposable.Dispose*</a></format> on the <paramref name="frame" /> when they have finished processing. Internally, ARKit only generates a new <see cref="T:ARKit.ARFrame" /> object when there are no more references to an existing frame.
If <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=System%20IDisposable%20Dispose&amp;scope=Xamarin" title="M:System.IDisposable.Dispose*">M:System.IDisposable.Dispose*</a></format> is not called, ARKit will not produce until the GC collects the <paramref name="frame" />. This typically appears as a frozen, non-responsive, or "severely stuttering" video feed.</para>
</remarks>
</Docs>
</Documentation>
25 changes: 25 additions & 0 deletions docs/api/AVFoundation/AVCapturePhotoCaptureDelegate_Extensions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<Documentation>
<Docs DocId="M:AVFoundation.AVCapturePhotoCaptureDelegate_Extensions.DidFinishProcessingPhoto(AVFoundation.IAVCapturePhotoCaptureDelegate,AVFoundation.AVCapturePhotoOutput,CoreMedia.CMSampleBuffer,CoreMedia.CMSampleBuffer,AVFoundation.AVCaptureResolvedPhotoSettings,AVFoundation.AVCaptureBracketedStillImageSettings,Foundation.NSError)">

<param name="captureOutput">To be added.</param>
<param name="photoSampleBuffer">
<para>To be added.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<param name="previewPhotoSampleBuffer">
<para>To be added.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<param name="resolvedSettings">To be added.</param>
<param name="bracketSettings">
<para>To be added.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<param name="error">
<para>To be added.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<summary>Developers should not use this deprecated method. Developers should use the 'DidFinishProcessingPhoto' overload accepting a 'AVCapturePhoto' instead.</summary>
<remarks>To be added.</remarks>
</Docs>
</Documentation>
12 changes: 12 additions & 0 deletions docs/api/UIKit/UICollectionViewDelegate_Extensions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<Documentation>
<Docs DocId="M:UIKit.UICollectionViewDelegate_Extensions.DidUpdateFocus(UIKit.IUICollectionViewDelegate,UIKit.UICollectionView,UIKit.UICollectionViewFocusUpdateContext,UIKit.UIFocusAnimationCoordinator)">

<param name="collectionView">The collection view that originated the request.</param>
<param name="context">Metadata for the focus change.</param>
<param name="coordinator">The <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=UIKit%20UIFocus%20Animation%20Controller&amp;scope=Xamarin" title="T:UIKit.UIFocusAnimationController">T:UIKit.UIFocusAnimationController</a></format> coordinating the focus-change animations.</param>
<summary>Indicates that the focus changed as detailed in the <paramref name="context" />.</summary>
<remarks>
<para>The values of <see cref="P:UIKit.UICollectionViewFocusUpdateContext.PreviouslyFocusedIndexPath" /> and <see cref="P:UIKit.UICollectionViewFocusUpdateContext.NextFocusedIndexPath" /> may be <see langword="null" /> if focus was previously not within, or just departed, the <paramref name="collectionView" />.</para>
</remarks>
</Docs>
</Documentation>
32 changes: 32 additions & 0 deletions src/appkit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18750,6 +18750,9 @@ interface NSPdfImageRep {
[NoMacCatalyst]
[BaseType (typeof (NSObject))]
partial interface NSTableColumn : NSUserInterfaceItemIdentification, NSCoding {
/// <param name="identifier">To be added.</param>
/// <summary>To be added.</summary>
/// <remarks>To be added.</remarks>
[Export ("initWithIdentifier:")]
[Sealed]
NativeHandle Constructor (string identifier);
Expand Down Expand Up @@ -21950,22 +21953,46 @@ interface INSToolbarDelegate { }
[BaseType (typeof (NSObject))]
[Model, Protocol]
interface NSToolbarDelegate {
/// <param name="toolbar">To be added.</param>
/// <param name="itemIdentifier">To be added.</param>
/// <param name="willBeInserted">To be added.</param>
/// <summary>To be added.</summary>
/// <returns>To be added.</returns>
/// <remarks>To be added.</remarks>
[return: NullAllowed]
[Export ("toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:"), DelegateName ("NSToolbarWillInsert"), DefaultValue (null)]
NSToolbarItem WillInsertItem (NSToolbar toolbar, string itemIdentifier, bool willBeInserted);

/// <param name="toolbar">To be added.</param>
/// <summary>To be added.</summary>
/// <returns>To be added.</returns>
/// <remarks>To be added.</remarks>
[Export ("toolbarDefaultItemIdentifiers:"), DelegateName ("NSToolbarIdentifiers"), DefaultValue (null)]
string [] DefaultItemIdentifiers (NSToolbar toolbar);

/// <param name="toolbar">To be added.</param>
/// <summary>To be added.</summary>
/// <returns>To be added.</returns>
/// <remarks>To be added.</remarks>
[Export ("toolbarAllowedItemIdentifiers:"), DelegateName ("NSToolbarIdentifiers"), DefaultValue (null)]
string [] AllowedItemIdentifiers (NSToolbar toolbar);

/// <param name="toolbar">To be added.</param>
/// <summary>To be added.</summary>
/// <returns>To be added.</returns>
/// <remarks>To be added.</remarks>
[Export ("toolbarSelectableItemIdentifiers:"), DelegateName ("NSToolbarIdentifiers"), DefaultValue (null)]
string [] SelectableItemIdentifiers (NSToolbar toolbar);

/// <param name="notification">To be added.</param>
/// <summary>To be added.</summary>
/// <remarks>To be added.</remarks>
[Export ("toolbarWillAddItem:"), EventArgs ("NSNotification")]
void WillAddItem (NSNotification notification);

/// <param name="notification">To be added.</param>
/// <summary>To be added.</summary>
/// <remarks>To be added.</remarks>
[Export ("toolbarDidRemoveItem:"), EventArgs ("NSNotification")]
void DidRemoveItem (NSNotification notification);

Expand Down Expand Up @@ -22287,6 +22314,11 @@ interface INSTouchBarDelegate { }
[Protocol, Model]
[BaseType (typeof (NSObject))]
interface NSTouchBarDelegate {
/// <param name="touchBar">To be added.</param>
/// <param name="identifier">To be added.</param>
/// <summary>To be added.</summary>
/// <returns>To be added.</returns>
/// <remarks>To be added.</remarks>
[Export ("touchBar:makeItemForIdentifier:"), DelegateName ("NSTouchBarMakeItem"), DefaultValue (null)]
[return: NullAllowed]
NSTouchBarItem MakeItem (NSTouchBar touchBar, string identifier);
Expand Down
85 changes: 85 additions & 0 deletions src/arkit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -844,19 +844,44 @@ interface IARSCNViewDelegate { }
[BaseType (typeof (NSObject))]
interface ARSCNViewDelegate : SCNSceneRendererDelegate, ARSessionObserver {

/// <param name="renderer">The renderer for the scene.</param>
/// <param name="anchor">The anchor for the node to get.</param>
/// <summary>Retrieves the <see cref="T:SceneKit.SCNNode" /> corresponding to the specified <paramref name="anchor" />.</summary>
/// <returns>To be added.</returns>
/// <remarks>To be added.</remarks>
[Export ("renderer:nodeForAnchor:")]
[return: NullAllowed]
SCNNode GetNode (ISCNSceneRenderer renderer, ARAnchor anchor);

/// <param name="renderer">The renderer for the event.</param>
/// <param name="node">The node that was added.</param>
/// <param name="anchor">The anchor for the node that was added.</param>
/// <summary>Developers may override this method to react to the adding of a <see cref="T:SceneKit.SCNNode" /> that corresponds to a new <see cref="T:ARKit.ARAnchor" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("renderer:didAddNode:forAnchor:")]
void DidAddNode (ISCNSceneRenderer renderer, SCNNode node, ARAnchor anchor);

/// <param name="renderer">The renderer for the scene.</param>
/// <param name="node">The node that will be updated.</param>
/// <param name="anchor">The anchor for the node that will be updated.</param>
/// <summary>This method is called shortly before the properties of <paramref name="node" /> are updated to reflect the state of <paramref name="anchor" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("renderer:willUpdateNode:forAnchor:")]
void WillUpdateNode (ISCNSceneRenderer renderer, SCNNode node, ARAnchor anchor);

/// <param name="renderer">The renderer for the scene.</param>
/// <param name="node">The node that was updated.</param>
/// <param name="anchor">The anchor for the node that was updated.</param>
/// <summary>This method is called shortly after <paramref name="node" /> has been updated to reflect the current state of <paramref name="anchor" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("renderer:didUpdateNode:forAnchor:")]
void DidUpdateNode (ISCNSceneRenderer renderer, SCNNode node, ARAnchor anchor);

/// <param name="renderer">The renderer for the scene.</param>
/// <param name="node">The node that was removed.</param>
/// <param name="anchor">The anchor for the node that was removed.</param>
/// <summary>Developers may override this method to react to the removal of <paramref name="node" />, which was removed after <paramref name="anchor" /> was removed.</summary>
/// <remarks>To be added.</remarks>
[Export ("renderer:didRemoveNode:forAnchor:")]
void DidRemoveNode (ISCNSceneRenderer renderer, SCNNode node, ARAnchor anchor);
}
Expand Down Expand Up @@ -900,19 +925,44 @@ interface IARSKViewDelegate { }
[BaseType (typeof (NSObject))]
interface ARSKViewDelegate : SKViewDelegate, ARSessionObserver {

/// <param name="view">The view that is rendering the scene.</param>
/// <param name="anchor">The anchor for the node to get.</param>
/// <summary>Retrieves the <see cref="T:SpriteKit.SKNode" /> corresponding to the specified <paramref name="anchor" />. If no corresponding node exists, returns <see langword="null" />.</summary>
/// <returns>To be added.</returns>
/// <remarks>To be added.</remarks>
[Export ("view:nodeForAnchor:")]
[return: NullAllowed]
SKNode GetNode (ARSKView view, ARAnchor anchor);

/// <param name="view">The view that is rendering the scene.</param>
/// <param name="node">The node that was added.</param>
/// <param name="anchor">The anchor for the node that was added.</param>
/// <summary>Developers may override this method to react to the adding of a <see cref="T:SpriteKit.SKNode" /> that corresponds to a new <see cref="T:ARKit.ARAnchor" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("view:didAddNode:forAnchor:")]
void DidAddNode (ARSKView view, SKNode node, ARAnchor anchor);

/// <param name="view">The view that is rendering the scene.</param>
/// <param name="node">The node that will be updated.</param>
/// <param name="anchor">The anchor for the node that will be updated.</param>
/// <summary>This method is called shortly before the properties of <paramref name="node" /> are updated to reflect the state of <paramref name="anchor" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("view:willUpdateNode:forAnchor:")]
void WillUpdateNode (ARSKView view, SKNode node, ARAnchor anchor);

/// <param name="view">The view that is rendering the scene.</param>
/// <param name="node">The node that was updated.</param>
/// <param name="anchor">The anchor for the node that was updated.</param>
/// <summary>This method is called shortly after <paramref name="node" /> has been updated to reflect the current state of <paramref name="anchor" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("view:didUpdateNode:forAnchor:")]
void DidUpdateNode (ARSKView view, SKNode node, ARAnchor anchor);

/// <param name="view">The view that is rendering the scene.</param>
/// <param name="node">The node that was removed.</param>
/// <param name="anchor">The anchor for the node that was removed.</param>
/// <summary>Developers may override this method to react to the removal of <paramref name="node" />, which was removed after <paramref name="anchor" /> was removed.</summary>
/// <remarks>To be added.</remarks>
[Export ("view:didRemoveNode:forAnchor:")]
void DidRemoveNode (ARSKView view, SKNode node, ARAnchor anchor);
}
Expand Down Expand Up @@ -998,21 +1048,43 @@ interface ARSession {
[Protocol]
interface ARSessionObserver {

/// <param name="session">The session that is supplying the information for the event.</param>
/// <param name="error">The error that occurred.</param>
/// <summary>Called when the <paramref name="session" /> stops running due to an error.</summary>
/// <remarks>To be added.</remarks>
[Export ("session:didFailWithError:")]
void DidFail (ARSession session, NSError error);

/// <param name="session">The session that is supplying the information for the event.</param>
/// <param name="camera">The camera whose tracking state changed.</param>
/// <summary>Called when the <see cref="P:ARKit.ARCamera.TrackingState" /> changes, indicating a change in tracking quality.</summary>
/// <remarks>To be added.</remarks>
[Export ("session:cameraDidChangeTrackingState:")]
void CameraDidChangeTrackingState (ARSession session, ARCamera camera);

/// <param name="session">The session that is supplying the information for the event.</param>
/// <summary>Developers may override this method to stop frame processing and device tracking when an interruption occurs.</summary>
/// <remarks>To be added.</remarks>
[Export ("sessionWasInterrupted:")]
void WasInterrupted (ARSession session);

/// <param name="session">The session that is supplying the information for the event.</param>
/// <summary>Developers may override this method to begin frame processing and device tracking after an interruption.</summary>
/// <remarks>To be added.</remarks>
[Export ("sessionInterruptionEnded:")]
void InterruptionEnded (ARSession session);

/// <param name="session">The session in question.</param>
/// <summary>Returns a Boolean value that tells whether the session should attempt to reorient after an interruption.</summary>
/// <returns>A Boolean value that tells whether the session should attempt to reorient after an interruption.</returns>
/// <remarks>To be added.</remarks>
[Export ("sessionShouldAttemptRelocalization:")]
bool ShouldAttemptRelocalization (ARSession session);

/// <param name="session">The session that is supplying the information for the event.</param>
/// <param name="audioSampleBuffer">The audio buffer that was played.</param>
/// <summary>Developers may implement this method that is called shortly after an audio buffer has been played.</summary>
/// <remarks>To be added.</remarks>
[Export ("session:didOutputAudioSampleBuffer:")]
void DidOutputAudioSampleBuffer (ARSession session, CMSampleBuffer audioSampleBuffer);

Expand All @@ -1039,15 +1111,28 @@ interface IARSessionDelegate { }
[BaseType (typeof (NSObject))]
interface ARSessionDelegate : ARSessionObserver {

/// <include file="../docs/api/ARKit/ARSessionDelegate_Extensions.xml" path="/Documentation/Docs[@DocId='M:ARKit.ARSessionDelegate_Extensions.DidUpdateFrame(ARKit.IARSessionDelegate,ARKit.ARSession,ARKit.ARFrame)']/*" />
[Export ("session:didUpdateFrame:")]
void DidUpdateFrame (ARSession session, ARFrame frame);

/// <param name="session">The session that is supplying the information for the event.</param>
/// <param name="anchors">The anchors that were added.</param>
/// <summary>Called when <paramref name="anchors" /> are added to the <paramref name="session" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("session:didAddAnchors:")]
void DidAddAnchors (ARSession session, ARAnchor [] anchors);

/// <param name="session">The session that is supplying the information for the event.</param>
/// <param name="anchors">The anchors that were updated.</param>
/// <summary>Indicates that <paramref name="anchors" /> have been updated due to tracking.</summary>
/// <remarks>To be added.</remarks>
[Export ("session:didUpdateAnchors:")]
void DidUpdateAnchors (ARSession session, ARAnchor [] anchors);

/// <param name="session">The session that is supplying the information for the event.</param>
/// <param name="anchors">The anchors that were removed.</param>
/// <summary>Called when <paramref name="anchors" /> have been removed from the <paramref name="session" />.</summary>
/// <remarks>To be added.</remarks>
[Export ("session:didRemoveAnchors:")]
void DidRemoveAnchors (ARSession session, ARAnchor [] anchors);
}
Expand Down
Loading