xamarin-macios/src/quartzcomposer.cs

221 строка
6.5 KiB
C#

//
// Copyright 2010, Kenneth Pouncey
//
// composer.cs: Definitions for binding QuartzComposer.
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using Foundation;
using AppKit;
using ObjCRuntime;
using CoreGraphics;
using CoreAnimation;
using CoreImage;
using CoreVideo;
#if !NET
using NativeHandle = System.IntPtr;
#endif
namespace QuartzComposer {
[Deprecated (PlatformName.MacOSX, 10, 15)]
[BaseType (typeof (NSObject))]
interface QCComposition : NSCopying {
[Static]
[Export ("compositionWithFile:")]
QCComposition GetComposition (string path);
[Static]
[Export ("compositionWithData:")]
QCComposition GetComposition (NSData data);
[Export ("protocols")]
string [] Protocols { get; }
[Export ("attributes")]
NSDictionary Attributes { get; }
[Export ("inputKeys")]
string [] InputKeys { get; }
[Export ("outputKeys")]
string [] OutputKeys { get; }
[Export ("identifier")]
string Identifier { get; }
[Field ("QCCompositionAttributeNameKey")]
NSString AttributeNameKey { get; }
[Field ("QCCompositionAttributeDescriptionKey")]
NSString AttributeDescriptionKey { get; }
[Field ("QCCompositionAttributeCopyrightKey")]
NSString AttributeCopyrightKey { get; }
[Field ("QCCompositionAttributeBuiltInKey")]
NSString AttributeBuiltInKey { get; }
[Field ("QCCompositionAttributeIsTimeDependentKey")]
NSString AttributeIsTimeDependentKey { get; }
[Field ("QCCompositionAttributeHasConsumersKey")]
NSString AttributeHasConsumersKey { get; }
[Field ("QCCompositionAttributeCategoryKey")]
NSString AttributeCategoryKey { get; }
[Field ("QCCompositionCategoryDistortion")]
NSString CategoryDistortion { get; }
[Field ("QCCompositionCategoryStylize")]
NSString CategoryStylize { get; }
[Field ("QCCompositionCategoryUtility")]
NSString CategoryUtility { get; }
[Field ("QCCompositionInputImageKey")]
NSString InputImageKey { get; }
[Field ("QCCompositionInputSourceImageKey")]
NSString InputSourceImageKey { get; }
[Field ("QCCompositionInputDestinationImageKey")]
NSString InputDestinationImageKey { get; }
[Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'Metal' instead.")]
[Field ("QCCompositionInputRSSFeedURLKey")]
NSString InputRSSFeedURLKey { get; }
[Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'Metal' instead.")]
[Field ("QCCompositionInputRSSArticleDurationKey")]
NSString InputRSSArticleDurationKey { get; }
[Field ("QCCompositionInputPreviewModeKey")]
NSString InputPreviewModeKey { get; }
[Field ("QCCompositionInputXKey")]
NSString InputXKey { get; }
[Field ("QCCompositionInputYKey")]
NSString InputYKey { get; }
[Field ("QCCompositionInputScreenImageKey")]
NSString InputScreenImageKey { get; }
[Field ("QCCompositionInputAudioPeakKey")]
NSString InputAudioPeakKey { get; }
[Field ("QCCompositionInputAudioSpectrumKey")]
NSString InputAudioSpectrumKey { get; }
[Field ("QCCompositionInputTrackPositionKey")]
NSString InputTrackPositionKey { get; }
[Field ("QCCompositionInputTrackInfoKey")]
NSString InputTrackInfoKey { get; }
[Field ("QCCompositionInputTrackSignalKey")]
NSString InputTrackSignalKey { get; }
[Field ("QCCompositionInputPrimaryColorKey")]
NSString InputPrimaryColorKey { get; }
[Field ("QCCompositionInputSecondaryColorKey")]
NSString InputSecondaryColorKey { get; }
[Field ("QCCompositionInputPaceKey")]
NSString InputPaceKey { get; }
[Field ("QCCompositionOutputImageKey")]
NSString OutputImageKey { get; }
[Field ("QCCompositionOutputWebPageURLKey")]
NSString OutputWebPageURLKey { get; }
[Field ("QCCompositionProtocolGraphicAnimation")]
NSString ProtocolGraphicAnimation { get; }
[Field ("QCCompositionProtocolGraphicTransition")]
NSString ProtocolGraphicTransition { get; }
[Field ("QCCompositionProtocolImageFilter")]
NSString ProtocolImageFilter { get; }
[Field ("QCCompositionProtocolScreenSaver")]
NSString ProtocolScreenSaver { get; }
[Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'Metal' instead.")]
[Field ("QCCompositionProtocolRSSVisualizer")]
NSString ProtocolRSSVisualizer { get; }
[Field ("QCCompositionProtocolMusicVisualizer")]
NSString ProtocolMusicVisualizer { get; }
}
[Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'Metal' instead.")]
[BaseType (typeof (CAOpenGLLayer))]
[DisableDefaultCtor] // return invalid handle
interface QCCompositionLayer {
[Static]
[Export ("compositionLayerWithFile:")]
QCCompositionLayer Create (string path);
[Static]
[Export ("compositionLayerWithComposition:")]
QCCompositionLayer Create (QCComposition composition);
[Export ("initWithFile:")]
NativeHandle Constructor (string path);
[Export ("initWithComposition:")]
NativeHandle Constructor (QCComposition composition);
[Export ("composition")]
QCComposition Composition { get; }
}
[Deprecated (PlatformName.MacOSX, 10, 15)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor] // crash when used (e.g. description) meant to be used thru sharedCompositionRepository
interface QCCompositionRepository {
[Static]
[Export ("sharedCompositionRepository")]
QCCompositionRepository SharedCompositionRepository { get; }
[Export ("compositionWithIdentifier:")]
QCComposition GetComposition (string identifier);
[Export ("compositionsWithProtocols:andAttributes:")]
QCComposition [] GetCompositions (NSArray protocols, NSDictionary attributes);
[Export ("allCompositions")]
QCComposition [] AllCompositions { get; }
}
}