diff --git a/src/CoreGraphics/CGColorSpace.cs b/src/CoreGraphics/CGColorSpace.cs index 30152b413d..1534e137ab 100644 --- a/src/CoreGraphics/CGColorSpace.cs +++ b/src/CoreGraphics/CGColorSpace.cs @@ -382,11 +382,13 @@ namespace XamCore.CoreGraphics { [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [DllImport (Constants.CoreGraphicsLibrary)] static extern /* CFDataRef* */ IntPtr CGColorSpaceCopyICCData (/* CGColorSpaceRef */ IntPtr space); [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] public NSData GetIccData () { IntPtr ptr = CGColorSpaceCopyICCData (handle); @@ -394,10 +396,12 @@ namespace XamCore.CoreGraphics { } [iOS (10,0)] + [TV (10,0)] [DllImport (Constants.CoreGraphicsLibrary)] static extern unsafe /* CFStringRef* */ IntPtr CGColorSpaceCopyName (/* CGColorSpaceRef */ IntPtr space); [iOS (10,0)] + [TV (10,0)] public string Name { get { return CFString.FetchString (CGColorSpaceCopyName (handle)); @@ -406,11 +410,13 @@ namespace XamCore.CoreGraphics { [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [DllImport (Constants.CoreGraphicsLibrary)] static extern bool CGColorSpaceIsWideGamutRGB (/* CGColorSpaceRef */ IntPtr space); [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] public bool IsWideGamutRgb { get { return CGColorSpaceIsWideGamutRGB (handle); @@ -418,10 +424,12 @@ namespace XamCore.CoreGraphics { } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [DllImport (Constants.CoreGraphicsLibrary)] static extern bool CGColorSpaceSupportsOutput (/* CGColorSpaceRef */ IntPtr space); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] public bool SupportsOutput { get { return CGColorSpaceSupportsOutput (handle); diff --git a/src/Foundation/NSArray.cs b/src/Foundation/NSArray.cs index 9a7cea90a8..563635d000 100644 --- a/src/Foundation/NSArray.cs +++ b/src/Foundation/NSArray.cs @@ -242,6 +242,22 @@ namespace XamCore.Foundation { return ret; } + static public T [] EnumsFromHandle (IntPtr handle) where T : struct, IConvertible + { + if (handle == IntPtr.Zero) + return null; + if (!typeof (T).IsEnum) + throw new ArgumentException ("T must be an enum"); + + var c = GetCount (handle); + T [] ret = new T [c]; + + for (uint i = 0; i < c; i++) { + ret [i] = (T) Convert.ChangeType (UnsafeGetItem (handle, i).LongValue, typeof (T)); + } + return ret; + } + static public T [] FromArray (NSArray weakArray) where T : NSObject { if (weakArray == null || weakArray.Handle == IntPtr.Zero) diff --git a/src/Metal/MTLVertexDescriptor.cs b/src/Metal/MTLVertexDescriptor.cs index 255a724e8d..4588177aec 100644 --- a/src/Metal/MTLVertexDescriptor.cs +++ b/src/Metal/MTLVertexDescriptor.cs @@ -23,10 +23,12 @@ namespace XamCore.Metal { } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [DllImport (Constants.MetalKitLibrary)] static extern /* MTLVertexDescriptor __nonnull */ IntPtr MTKMetalVertexDescriptorFromModelIOWithError (/* MDLVertexDescriptor __nonnull */ IntPtr modelIODescriptor, out IntPtr error); [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] public static MTLVertexDescriptor FromModelIO (MDLVertexDescriptor descriptor, out NSError error) { if (descriptor == null) diff --git a/src/ModelIO/MDLVertexDescriptor.cs b/src/ModelIO/MDLVertexDescriptor.cs index ecede1f76c..bbae2c7fe6 100644 --- a/src/ModelIO/MDLVertexDescriptor.cs +++ b/src/ModelIO/MDLVertexDescriptor.cs @@ -20,10 +20,12 @@ namespace XamCore.ModelIO { } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [DllImport (Constants.MetalKitLibrary)] static extern /* MDLVertexDescriptor __nonnull */ IntPtr MTKModelIOVertexDescriptorFromMetalWithError (/* MTLVertexDescriptor __nonnull */ IntPtr metalDescriptor, out /* NSError */ IntPtr error); [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] public static MDLVertexDescriptor FromMetal (MTLVertexDescriptor descriptor, out NSError error) { if (descriptor == null) diff --git a/src/Security/SslContext.cs b/src/Security/SslContext.cs index 7e67b7efc2..b29b1bb936 100644 --- a/src/Security/SslContext.cs +++ b/src/Security/SslContext.cs @@ -552,10 +552,12 @@ namespace XamCore.Security { #endif [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [DllImport (Constants.SecurityLibrary)] static extern int SSLSetSessionConfig (IntPtr /* SSLContextRef* */ context, IntPtr /* CFStringRef* */ config); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [EditorBrowsable (EditorBrowsableState.Advanced)] public int SetSessionConfig (NSString config) { @@ -566,6 +568,7 @@ namespace XamCore.Security { } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] public int SetSessionConfig (SslSessionConfig config) { return SetSessionConfig (config.GetConstant ()); @@ -573,10 +576,13 @@ namespace XamCore.Security { [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [DllImport (Constants.SecurityLibrary)] static extern int SSLReHandshake (IntPtr /* SSLContextRef* */ context); [iOS (10,0)][Mac (10,12)] + [Watch (3,0)] + [TV (10,0)] public int ReHandshake () { return SSLReHandshake (Handle); diff --git a/src/audiounit.cs b/src/audiounit.cs index 78773c50d1..4ee45c2270 100644 --- a/src/audiounit.cs +++ b/src/audiounit.cs @@ -431,11 +431,13 @@ namespace XamCore.AudioUnit { float GetValue (string str); [iOS (10,0), Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Internal] [Export ("setValue:originator:atHostTime:eventType:")] void SetValue (float value, IntPtr originator, ulong hostTime, AUParameterAutomationEventType eventType); [iOS (10,0), Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Wrap ("SetValue (value, originator.ObserverToken, hostTime, eventType)")] void SetValue (float value, AUParameterObserverToken originator, ulong hostTime, AUParameterAutomationEventType eventType); } @@ -502,11 +504,13 @@ namespace XamCore.AudioUnit { AUImplementorDisplayNameWithLengthCallback ImplementorDisplayNameWithLengthCallback { get; set; } [iOS (10,0), Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Internal] [Export ("tokenByAddingParameterAutomationObserver:")] IntPtr _GetToken (AUParameterAutomationObserver observer); [iOS (10,0), Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Wrap ("new AUParameterObserverToken (_GetToken (observer))")] AUParameterObserverToken GetToken (AUParameterAutomationObserver observer); } diff --git a/src/avfoundation.cs b/src/avfoundation.cs index 7d46a8d64f..dc8e0e0835 100644 --- a/src/avfoundation.cs +++ b/src/avfoundation.cs @@ -9334,10 +9334,12 @@ namespace XamCore.AVFoundation { void DidOutputTimedMetadataGroups (AVPlayerItemMetadataOutput output, AVTimedMetadataGroup [] groups, AVPlayerItemTrack track); } + [iOS (10,0)] + [Mac (10,12)] + [TV (10,0)] [NoWatch] [Static] interface AVVideoColorPrimaries { - [iOS (10, 0)] [Field ("AVVideoColorPrimaries_ITU_R_709_2")] NSString Itu_R_709_2 { get; } @@ -9345,11 +9347,10 @@ namespace XamCore.AVFoundation { [Field ("AVVideoColorPrimaries_EBU_3213")] NSString Ebu_3213 { get; } - [iOS (10, 0)] [Field ("AVVideoColorPrimaries_SMPTE_C")] NSString Smpte_C { get; } - [iOS (10, 0), NoMac] + [NoMac] [Field ("AVVideoColorPrimaries_P3_D65")] NSString P3_D65 { get; } } @@ -9474,9 +9475,15 @@ namespace XamCore.AVFoundation { [NoWatch] [StrongDictionary ("AVPlayerItemVideoOutputSettingsKeys")] interface AVPlayerItemVideoOutputSettings { + + [iOS (10,0)] + [TV (10,0)] AVColorProperties ColorProperties { get; set; } + AVCompressionProperties CompressionProperties { get; set; } #if !MONOMAC + [iOS (10,0)] + [TV (10,0)] bool AllowWideColor { get; set; } #endif NSString Codec { get; set; } @@ -9490,6 +9497,7 @@ namespace XamCore.AVFoundation { [Internal] interface AVPlayerItemVideoOutputSettingsKeys { [iOS (10,0)] + [TV (10,0)] [Field ("AVVideoColorPropertiesKey")] NSString ColorPropertiesKey { get; } @@ -9497,6 +9505,7 @@ namespace XamCore.AVFoundation { NSString CompressionPropertiesKey { get; } [iOS (10,0), NoMac] + [TV (10,0)] [Field ("AVVideoAllowWideColorKey")] NSString AllowWideColorKey { get; } @@ -10161,6 +10170,7 @@ namespace XamCore.AVFoundation { AVSpeechUtterance FromString (string speechString); [iOS (10,0)] + [TV (10,0)] [Static] [Export ("speechUtteranceWithAttributedString:")] AVSpeechUtterance FromString (NSAttributedString speechString); @@ -10169,6 +10179,7 @@ namespace XamCore.AVFoundation { IntPtr Constructor (string speechString); [iOS (10,0)] + [TV (10,0)] [Export ("initWithAttributedString:")] IntPtr Constructor (NSAttributedString speechString); @@ -10180,6 +10191,7 @@ namespace XamCore.AVFoundation { string SpeechString { get; } [iOS (10, 0)] + [TV (10,0)] [Export ("attributedSpeechString")] NSAttributedString AttributedSpeechString { get; } @@ -10239,6 +10251,7 @@ namespace XamCore.AVFoundation { bool ContinueSpeaking (); [iOS (10, 0)] + [TV (10,0)] [NullAllowed, Export ("outputChannels", ArgumentSemantic.Retain)] AVAudioSessionChannelDescription[] OutputChannels { get; set; } } diff --git a/src/corebluetooth.cs b/src/corebluetooth.cs index 96b605e30c..06b5786d79 100644 --- a/src/corebluetooth.cs +++ b/src/corebluetooth.cs @@ -692,6 +692,7 @@ namespace XamCore.CoreBluetooth { #if !MONOMAC // Filled radar://27160443 – Trello: https://trello.com/c/oqB27JA6 [iOS (10,0)] + [TV (10,0)] [Field ("CBUUIDCharacteristicValidRangeString")] #else [Field ("CBUUIDValidRangeString")] diff --git a/src/coregraphics.cs b/src/coregraphics.cs index a18a18dfc2..44ffe69319 100644 --- a/src/coregraphics.cs +++ b/src/coregraphics.cs @@ -131,31 +131,37 @@ namespace XamCore.CoreGraphics { [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGColorSpaceExtendedSRGB")] NSString ExtendedSrgb { get; } [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGColorSpaceLinearSRGB")] NSString LinearSrgb { get; } [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGColorSpaceExtendedLinearSRGB")] NSString ExtendedLinearSrgb { get; } [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGColorSpaceExtendedGray")] NSString ExtendedGray { get; } [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGColorSpaceLinearGray")] NSString LinearGray { get; } [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGColorSpaceExtendedLinearGray")] NSString ExtendedLinearGray { get; } diff --git a/src/coreimage.cs b/src/coreimage.cs index d18ceda1a4..c9f12880a3 100644 --- a/src/coreimage.cs +++ b/src/coreimage.cs @@ -57,6 +57,7 @@ namespace XamCore.CoreImage { CIColor FromRgba (nfloat red, nfloat green, nfloat blue, nfloat alpha); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("colorWithRed:green:blue:alpha:colorSpace:")] [return: NullAllowed] @@ -67,6 +68,7 @@ namespace XamCore.CoreImage { CIColor FromRgb (nfloat red, nfloat green, nfloat blue); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("colorWithRed:green:blue:colorSpace:")] [return: NullAllowed] @@ -85,6 +87,7 @@ namespace XamCore.CoreImage { IntPtr Constructor (nfloat red, nfloat green, nfloat blue); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithRed:green:blue:colorSpace:")] IntPtr Constructor (nfloat red, nfloat green, nfloat blue, CGColorSpace colorSpace); @@ -93,6 +96,7 @@ namespace XamCore.CoreImage { IntPtr Constructor (nfloat red, nfloat green, nfloat blue, nfloat alpha); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithRed:green:blue:alpha:colorSpace:")] IntPtr Constructor (nfloat red, nfloat green, nfloat blue, nfloat alpha, CGColorSpace colorSpace); @@ -122,51 +126,61 @@ namespace XamCore.CoreImage { // conflicting names means we have to keep the *Color suffix on them [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("blackColor")] CIColor BlackColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("whiteColor")] CIColor WhiteColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("grayColor")] CIColor GrayColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("redColor")] CIColor RedColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("greenColor")] CIColor GreenColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("blueColor")] CIColor BlueColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("cyanColor")] CIColor CyanColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("magentaColor")] CIColor MagentaColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("yellowColor")] CIColor YellowColor { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("clearColor")] CIColor ClearColor { get; } @@ -274,6 +288,7 @@ namespace XamCore.CoreImage { CGImage CreateCGImage (CIImage image, CGRect fromRect, int /* CIFormat = int */ ciImageFormat, [NullAllowed] CGColorSpace colorSpace); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("createCGImage:fromRect:format:colorSpace:deferred:")] [return: NullAllowed] CGImage CreateCGImage (CIImage image, CGRect fromRect, CIFormat format, [NullAllowed] CGColorSpace colorSpace, bool deferred); @@ -295,6 +310,7 @@ namespace XamCore.CoreImage { #endif [iOS (10,0)] + [TV (10,0)] [Export ("clearCaches")] void ClearCaches (); @@ -345,6 +361,7 @@ namespace XamCore.CoreImage { CGColorSpace WorkingColorSpace { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("workingFormat")] CIFormat WorkingFormat { get; } @@ -354,6 +371,7 @@ namespace XamCore.CoreImage { NSString OutputPremultiplied { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Internal] [Field ("kCIContextCacheIntermediates", "+CoreImage")] NSString CacheIntermediates { get; } @@ -401,7 +419,7 @@ namespace XamCore.CoreImage { [Export ("name")] string Name { get; - [iOS (10,0)] + [iOS (10,0)][TV (10,0)] set; } @@ -483,36 +501,43 @@ namespace XamCore.CoreImage { // CIRAWFilter (CIFilter) [iOS (10,0)] + [TV (10,0)] [Static] [Export ("filterWithImageURL:options:")] CIFilter CreateRawFilter (NSUrl url, NSDictionary options); [iOS (10,0)] + [TV (10,0)] [Static] [Wrap ("CreateRawFilter (url, options?.Dictionary)")] CIFilter CreateRawFilter (NSUrl url, CIRawFilterOptions options); [iOS (10,0)] + [TV (10,0)] [Static] [Export ("filterWithImageData:options:")] CIFilter CreateRawFilter (NSData data, NSDictionary options); [iOS (10,0)] + [TV (10,0)] [Static] [Wrap ("CreateRawFilter (data, options?.Dictionary)")] CIFilter CreateRawFilter (NSData data, CIRawFilterOptions options); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("filterWithCVPixelBuffer:properties:options:")] CIFilter CreateRawFilter (CVPixelBuffer pixelBuffer, NSDictionary properties, NSDictionary options); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Wrap ("CreateRawFilter (pixelBuffer, properties, options?.Dictionary)")] CIFilter CreateRawFilter (CVPixelBuffer pixelBuffer, NSDictionary properties, CIRawFilterOptions options); } + [TV (10,0)] [Static] [Internal] interface CIRawFilterKeys { @@ -625,6 +650,7 @@ namespace XamCore.CoreImage { NSString ActiveKeysKey { get; } } + [TV (10,0)] [StrongDictionary ("CIRawFilterKeys")] public interface CIRawFilterOptions { @@ -1572,44 +1598,54 @@ namespace XamCore.CoreImage { #endif [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageByClampingToRect:")] CIImage CreateByClamping (CGRect rect); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageByColorMatchingColorSpaceToWorkingSpace:")] [return: NullAllowed] CIImage CreateByColorMatchingColorSpaceToWorkingSpace (CGColorSpace colorSpace); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageByColorMatchingWorkingSpaceToColorSpace:")] [return: NullAllowed] CIImage CreateByColorMatchingWorkingSpaceToColorSpace (CGColorSpace colorSpace); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageByPremultiplyingAlpha")] CIImage CreateByPremultiplyingAlpha (); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageByUnpremultiplyingAlpha")] CIImage CreateByUnpremultiplyingAlpha (); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageBySettingAlphaOneInExtent:")] CIImage CreateBySettingAlphaOne (CGRect extent); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageByApplyingGaussianBlurWithSigma:")] CIImage CreateByApplyingGaussianBlur (double sigma); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("imageBySettingProperties:")] CIImage CreateBySettingProperties (NSDictionary properties); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [NullAllowed, Export ("pixelBuffer")] CVPixelBuffer PixelBuffer { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [NullAllowed, Export ("CGImage")] CGImage CGImage { get; } } @@ -2029,6 +2065,7 @@ namespace XamCore.CoreImage { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Field ("CIDetectorMaxFeatureCount"), Internal] NSString MaxFeatureCount { get; } @@ -2227,6 +2264,7 @@ namespace XamCore.CoreImage { #endif [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof (NSObject))] interface CIImageProcessorKernel { [Static] @@ -4339,6 +4377,7 @@ namespace XamCore.CoreImage { [CoreImageFilter] [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [BaseType (typeof (CIFilter))] interface CIClamp { @@ -4349,6 +4388,7 @@ namespace XamCore.CoreImage { [CoreImageFilter] [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [BaseType (typeof (CIFilter))] interface CIHueSaturationValueGradient { @@ -4371,6 +4411,7 @@ namespace XamCore.CoreImage { [CoreImageFilter] [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [BaseType (typeof (CIFilter))] interface CINinePartStretched { @@ -4387,6 +4428,7 @@ namespace XamCore.CoreImage { [CoreImageFilter] [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [BaseType (typeof (CIFilter))] interface CINinePartTiled { @@ -4406,6 +4448,7 @@ namespace XamCore.CoreImage { [CoreImageFilter] [iOS (10,0)] [Mac (10,12)] // filter says 10.11 but it fails when I run it on El Capitan + [TV (10,0)] [BaseType (typeof (CIFilter))] interface CIThermal { } @@ -4413,6 +4456,7 @@ namespace XamCore.CoreImage { [CoreImageFilter] [iOS (10,0)] [Mac (10,12)] // filter says 10.11 but it fails when I run it on El Capitan + [TV (10,0)] [BaseType (typeof (CIFilter))] interface CIXRay { } diff --git a/src/corevideo.cs b/src/corevideo.cs index 6b1eece464..f738992918 100644 --- a/src/corevideo.cs +++ b/src/corevideo.cs @@ -163,10 +163,12 @@ namespace XamCore.CoreVideo { NSString TransferFunction_UseGamma { get; } [iOS (9,0), Mac (10,11)] + [TV (10,0)] [Field ("kCVImageBufferTransferFunction_ITU_R_2020")] NSString TransferFunction_ITU_R_2020 { get; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Field ("kCVImageBufferTransferFunction_SMPTE_ST_428_1")] NSString TransferFunction_SMPTE_ST_428_1 { get; } diff --git a/src/gamekit.cs b/src/gamekit.cs index f05e40bd94..61af3b2708 100644 --- a/src/gamekit.cs +++ b/src/gamekit.cs @@ -431,6 +431,7 @@ namespace XamCore.GameKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] interface GKBasePlayer { @@ -443,6 +444,7 @@ namespace XamCore.GameKit { [NoWatch] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(GKBasePlayer))] interface GKCloudPlayer { diff --git a/src/generator.cs b/src/generator.cs index 0d8860e669..1b885d7f63 100644 --- a/src/generator.cs +++ b/src/generator.cs @@ -6590,6 +6590,8 @@ public partial class Generator : IMemberGatherer { string shouldOverrideDelegateString = isProtocolizedEventBacked ? "" : "override "; + string previous_miname = null; + int miname_count = 0; foreach (var mi in dtype.GatherMethods ().OrderBy (m => m.Name)) { if (ShouldSkipEventGeneration (mi)) continue; @@ -6605,13 +6607,21 @@ public partial class Generator : IMemberGatherer { var sender = pars.Length == 0 ? "this" : pars [0].Name; + var miname = PascalCase (mi.Name); + if (miname == previous_miname) { + // overloads, add a numbered suffix (it's internal) + previous_miname = miname; + miname += (++miname_count).ToString (); + } else + previous_miname = miname; + if (mi.ReturnType == typeof (void)){ if (bta.Singleton || mi.GetParameters ().Length == 1) - print ("internal EventHandler {0};", PascalCase (mi.Name)); + print ("internal EventHandler {0};", miname); else - print ("internal EventHandler<{0}> {1};", GetEventArgName (mi), PascalCase (mi.Name)); + print ("internal EventHandler<{0}> {1};", GetEventArgName (mi), miname); } else - print ("internal {0} {1};", GetDelegateName (mi), PascalCase (mi.Name)); + print ("internal {0} {1};", GetDelegateName (mi), miname); print ("[Preserve (Conditional = true)]"); if (isProtocolizedEventBacked) @@ -6640,7 +6650,7 @@ public partial class Generator : IMemberGatherer { if (bta.Singleton || mi.GetParameters ().Length == 1) print ("EventHandler handler = {0};", PascalCase (mi.Name)); else - print ("EventHandler<{0}> handler = {1};", GetEventArgName (mi), PascalCase (mi.Name)); + print ("EventHandler<{0}> handler = {1};", GetEventArgName (mi), miname); print ("if (handler != null){"); indent++; diff --git a/src/glkit.cs b/src/glkit.cs index 5b596f960d..902e0d63fa 100644 --- a/src/glkit.cs +++ b/src/glkit.cs @@ -403,14 +403,17 @@ namespace XamCore.GLKit { GLKTextureTarget Target { get; } [iOS (10,0)][Mac (10,12, onlyOn64: true)] + [TV (10,0)] [Export ("mimapLevelCount")] uint MimapLevelCount { get; } [iOS (10,0)][Mac (10,12, onlyOn64: true)] + [TV (10,0)] [Export ("arrayLength")] uint ArrayLength { get; } [iOS (10,0)][Mac (10,12, onlyOn64: true)] + [TV (10,0)] [Export ("depth")] uint Depth { get; } } @@ -450,6 +453,7 @@ namespace XamCore.GLKit { GLKTextureInfo CubeMapFromUrl (NSUrl url, [NullAllowed] NSDictionary textureOperations, out NSError error); [iOS (10,0)][Mac (10,12, onlyOn64: true)] + [TV (10,0)] [Static] [Export ("textureWithName:scaleFactor:bundle:options:error:")] [return: NullAllowed] @@ -489,6 +493,7 @@ namespace XamCore.GLKit { void BeginLoadCubeMap (NSUrl filePath, [NullAllowed] NSDictionary textureOperations, [NullAllowed] DispatchQueue queue, GLKTextureLoaderCallback onComplete); [iOS (10,0)][Mac (10,12, onlyOn64: true)] + [TV (10,0)] [Export ("textureWithName:scaleFactor:bundle:options:queue:completionHandler:")] [Async] void BeginTextureLoad (string name, nfloat scaleFactor, [NullAllowed] NSBundle bundle, [NullAllowed] NSDictionary options, [NullAllowed] DispatchQueue queue, GLKTextureLoaderCallback block); diff --git a/src/imageio.cs b/src/imageio.cs index 694b0e2b28..2b0e2c2939 100644 --- a/src/imageio.cs +++ b/src/imageio.cs @@ -608,82 +608,121 @@ namespace XamCore.ImageIO { [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGBlackLevel")] NSString DNGBlackLevel { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGWhiteLevel")] NSString DNGWhiteLevel { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGCalibrationIlluminant1")] NSString DNGCalibrationIlluminant1 { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGCalibrationIlluminant2")] NSString DNGCalibrationIlluminant2 { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGColorMatrix1")] NSString DNGColorMatrix1 { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGColorMatrix2")] NSString DNGColorMatrix2 { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGCameraCalibration1")] NSString DNGCameraCalibration1 { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGCameraCalibration2")] NSString DNGCameraCalibration2 { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGAsShotNeutral")] NSString DNGAsShotNeutral { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGAsShotWhiteXY")] NSString DNGAsShotWhiteXY { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGBaselineExposure")] NSString DNGBaselineExposure { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGBaselineNoise")] NSString DNGBaselineNoise { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGBaselineSharpness")] NSString DNGBaselineSharpness { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGPrivateData")] NSString DNGPrivateData { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGCameraCalibrationSignature")] NSString DNGCameraCalibrationSignature { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGProfileCalibrationSignature")] NSString DNGProfileCalibrationSignature { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGNoiseProfile")] NSString DNGNoiseProfile { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGWarpRectilinear")] NSString DNGWarpRectilinear { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGWarpFisheye")] NSString DNGWarpFisheye { get; } + [iOS (10,0)][Mac (12,0)] [Watch (3,0)] + [TV (10,0)] [Field ("kCGImagePropertyDNGFixVignetteRadial")] NSString DNGFixVignetteRadial { get; } @@ -957,6 +996,7 @@ namespace XamCore.ImageIO { IntPtr kShouldExcludeGPS { get; } [iOS (9,3)][Mac (10,12)] + [TV (9,2)] [Internal][Field ("kCGImageDestinationOptimizeColorForSharing")] IntPtr kOptimizeColorForSharing { get; } } @@ -1049,6 +1089,7 @@ namespace XamCore.ImageIO { NSString EmbedThumbnail { get; } [iOS (9,3)][Mac (10,12)] + [TV (9,2)] [Field ("kCGImageDestinationOptimizeColorForSharing")] NSString OptimizeColorForSharing { get; } diff --git a/src/mediaplayer.cs b/src/mediaplayer.cs index ef736fd9b9..6d86d5cc8b 100644 --- a/src/mediaplayer.cs +++ b/src/mediaplayer.cs @@ -249,6 +249,7 @@ namespace XamCore.MediaPlayer { [DisableDefaultCtor] public interface MPMediaItemArtwork { [iOS (10,0)] + [TV (10,0)] [Export ("initWithBoundsSize:requestHandler:")] [DesignatedInitializer] IntPtr Constructor (CGSize boundsSize, Func requestHandler); @@ -1290,26 +1291,32 @@ namespace XamCore.MediaPlayer { NSString PropertyCurrentLanguageOptions { get; } [iOS (10,0)] + [TV (10,0)] [Field ("MPNowPlayingInfoCollectionIdentifier")] NSString PropertyCollectionIdentifier { get; } [iOS (10,0)] + [TV (10,0)] [Field ("MPNowPlayingInfoPropertyExternalContentIdentifier")] NSString PropertyExternalContentIdentifier { get; } [iOS (10,0)] + [TV (10,0)] [Field ("MPNowPlayingInfoPropertyExternalUserProfileIdentifier")] NSString PropertyExternalUserProfileIdentifier { get; } [iOS (10,0)] + [TV (10,0)] [Field ("MPNowPlayingInfoPropertyPlaybackProgress")] NSString PropertyPlaybackProgress { get; } [iOS (10,0)] + [TV (10,0)] [Field ("MPNowPlayingInfoPropertyMediaType")] NSString PropertyMediaType { get; } [iOS (10,0)] + [TV (10,0)] [Field ("MPNowPlayingInfoPropertyIsLiveStream")] NSString PropertyIsLiveStream { get; } } @@ -1709,6 +1716,7 @@ namespace XamCore.MediaPlayer { MPNowPlayingInfoLanguageOption LanguageOption { get; } [iOS (10,0)] + [TV (10,0)] [Export ("setting")] MPChangeLanguageOptionSetting Setting { get; } } @@ -1722,6 +1730,7 @@ namespace XamCore.MediaPlayer { MPShuffleType ShuffleType { get; } [iOS (10,0)] + [TV (10,0)] [Export ("preservesShuffleMode")] bool PreservesShuffleMode { get; } } @@ -1735,6 +1744,7 @@ namespace XamCore.MediaPlayer { MPRepeatType RepeatType { get; } [iOS (10,0)] + [TV (10,0)] [Export ("preservesRepeatMode")] bool PreservesRepeatMode { get; } } diff --git a/src/metal.cs b/src/metal.cs index b8b4525bc0..ab4e73cfff 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -1812,6 +1812,7 @@ namespace XamCore.Metal { MTLRenderPassDescriptor CreateRenderPassDescriptor (); [NoiOS, Mac (10,11)] + [NoTV] [Export ("renderTargetArrayLength")] nuint RenderTargetArrayLength { get; set; } } diff --git a/src/metalkit.cs b/src/metalkit.cs index fab3658fe1..6125990809 100644 --- a/src/metalkit.cs +++ b/src/metalkit.cs @@ -141,6 +141,7 @@ namespace XamCore.MetalKit { NSString AllocateMipmapsKey { get; } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Field ("MTKTextureLoaderOptionGenerateMipmaps")] NSString GenerateMipmapsKey { get; } @@ -154,25 +155,30 @@ namespace XamCore.MetalKit { NSString TextureCpuCacheModeKey { get; } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Field ("MTKTextureLoaderOptionTextureStorageMode")] NSString TextureStorageModeKey { get; } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Field ("MTKTextureLoaderOptionCubeLayout")] NSString CubeLayoutKey { get; } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] [Field ("MTKTextureLoaderOptionOrigin")] NSString OriginKey { get; } } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] enum MTKTextureLoaderCubeLayout { [Field ("MTKTextureLoaderCubeLayoutVertical")] Vertical, } [iOS (10,0)][Mac (10,12, onlyOn64 : true)] + [TV (10,0)] enum MTKTextureLoaderOrigin { [Field ("MTKTextureLoaderOriginTopLeft")] TopLeft, @@ -186,6 +192,7 @@ namespace XamCore.MetalKit { interface MTKTextureLoaderOptions { bool AllocateMipmaps { get; set; } + [TV (10,0)] [iOS (10,0)][Mac (10,12, onlyOn64 : true)] bool GenerateMipmaps { get; } diff --git a/src/mobilecoreservices.cs b/src/mobilecoreservices.cs index 0bc5ff96e5..4a2b57a356 100644 --- a/src/mobilecoreservices.cs +++ b/src/mobilecoreservices.cs @@ -576,6 +576,7 @@ namespace XamCore.MobileCoreServices { [NoWatch] [iOS (10,0)][Mac(10,12, onlyOn64 : true)] + [TV (10,0)] [Field ("kUTTypeUniversalSceneDescription", "ModelIO")] NSString UniversalSceneDescription { get; } diff --git a/src/modelio.cs b/src/modelio.cs index a6aeae0b58..6b4b0ee4ed 100644 --- a/src/modelio.cs +++ b/src/modelio.cs @@ -68,6 +68,7 @@ namespace XamCore.ModelIO { IntPtr Constructor (NSUrl url, [NullAllowed] MDLVertexDescriptor vertexDescriptor, [NullAllowed] IMDLMeshBufferAllocator bufferAllocator); [iOS (10,0)] + [TV (10,0)] [NoMac] [Export ("initWithBufferAllocator:")] IntPtr Constructor ([NullAllowed] IMDLMeshBufferAllocator bufferAllocator); @@ -89,6 +90,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("childObjectsOfClass:")] MDLObject[] GetChildObjects (Class objectClass); @@ -135,6 +137,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("masters", ArgumentSemantic.Retain)] IMDLObjectContainerComponent Masters { get; set; } @@ -144,6 +147,7 @@ namespace XamCore.ModelIO { MDLAsset FromScene (SCNScene scene); [iOS (10, 0), Mac (10, 12)] + [TV (10,0)] [Static] [Export ("assetWithSCNScene:bufferAllocator:")] MDLAsset FromScene (SCNScene scene, [NullAllowed] IMDLMeshBufferAllocator bufferAllocator); @@ -178,6 +182,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("projection", ArgumentSemantic.Assign)] MDLCameraProjection Projection { get; set; } @@ -347,6 +352,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("colorSpace")] // No documentation to confirm but this should be a constant (hence NSString). NSString ColorSpace { get; set; } @@ -433,6 +439,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("materialFace", ArgumentSemantic.Assign)] MDLMaterialFace MaterialFace { get; set; } @@ -533,11 +540,13 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("luminance")] float Luminance { get; set; } } [iOS (10,0), Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] [DisableDefaultCtor] interface MDLMaterialPropertyConnection : MDLNamed @@ -553,6 +562,7 @@ namespace XamCore.ModelIO { } [iOS (10,0), Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] [DisableDefaultCtor] interface MDLMaterialPropertyNode : MDLNamed @@ -571,6 +581,7 @@ namespace XamCore.ModelIO { } [iOS (10,0), Mac (10,12)] + [TV (10,0)] [BaseType (typeof(MDLMaterialPropertyNode))] [DisableDefaultCtor] interface MDLMaterialPropertyGraph @@ -594,6 +605,7 @@ namespace XamCore.ModelIO { { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("initWithBufferAllocator:")] IntPtr Constructor ([NullAllowed] IMDLMeshBufferAllocator bufferAllocator); @@ -610,6 +622,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("vertexAttributeDataForAttributeNamed:asFormat:")] [return: NullAllowed] MDLVertexAttributeData GetVertexAttributeData (string attributeName, MDLVertexFormat format); @@ -627,6 +640,7 @@ namespace XamCore.ModelIO { get; [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] set; } @@ -639,11 +653,13 @@ namespace XamCore.ModelIO { get; [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] set; } [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("allocator", ArgumentSemantic.Retain)] IMDLMeshBufferAllocator Allocator { get; } @@ -654,11 +670,13 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("addAttributeWithName:format:type:data:stride:")] void AddAttribute (string name, MDLVertexFormat format, string type, NSData data, nint stride); [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("addAttributeWithName:format:type:data:stride:time:")] void AddAttribute (string name, MDLVertexFormat format, string type, NSData data, nint stride, double time); @@ -673,6 +691,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("addUnwrappedTextureCoordinatesForAttributeNamed:")] void AddUnwrappedTextureCoordinates (string textureCoordinateAttributeName); @@ -681,16 +700,19 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("replaceAttributeNamed:withData:")] void ReplaceAttribute (string name, MDLVertexAttributeData newData); [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("updateAttributeNamed:withData:")] void UpdateAttribute (string name, MDLVertexAttributeData newData); [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("removeAttributeNamed:")] void RemoveAttribute (string name); @@ -784,6 +806,7 @@ namespace XamCore.ModelIO { MDLMesh FromGeometry (SCNGeometry geometry); [iOS (10, 0), Mac (10, 12)] + [TV (10,0)] [Static] [Export ("meshWithSCNGeometry:bufferAllocator:")] MDLMesh FromGeometry (SCNGeometry geometry, [NullAllowed] IMDLMeshBufferAllocator bufferAllocator); @@ -947,16 +970,19 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [NullAllowed, Export ("instance", ArgumentSemantic.Retain)] MDLObject Instance { get; set; } [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("path")] string Path { get; } [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("objectAtPath:")] MDLObject GetObject (string path); @@ -968,6 +994,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("hidden")] bool Hidden { get; set; } @@ -984,6 +1011,7 @@ namespace XamCore.ModelIO { MDLObject FromNode (SCNNode node); [iOS (10,0), Mac (10,12)] + [TV (10,0)] [Static] [Export ("objectWithSCNNode:bufferAllocator:")] MDLObject FromNode (SCNNode node, [NullAllowed] IMDLMeshBufferAllocator bufferAllocator); @@ -1259,6 +1287,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("indexBufferAsIndexType:")] IMDLMeshBuffer GetIndexBuffer (MDLIndexBitDepth indexType); @@ -1282,6 +1311,7 @@ namespace XamCore.ModelIO { MDLSubmesh FromGeometryElement (SCNGeometryElement element); [iOS (10, 0), Mac (10, 12)] + [TV (10,0)] [Static] [Export ("submeshWithSCNGeometryElement:bufferAllocator:")] MDLSubmesh FromGeometryElement (SCNGeometryElement element, [NullAllowed] IMDLMeshBufferAllocator bufferAllocator); @@ -1367,6 +1397,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("hasAlphaValues")] bool HasAlphaValues { get; set; } } @@ -1416,6 +1447,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("initWithTransformComponent:resetsTransform:")] IntPtr Constructor (IMDLTransformComponent component, bool resetsTransform); @@ -1425,6 +1457,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("initWithMatrix:resetsTransform:")] [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] IntPtr Constructor (Matrix4 matrix, bool resetsTransform); @@ -1515,6 +1548,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] #if XAMCORE_4_0 [Abstract] #endif @@ -1592,6 +1626,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("time")] double Time { get; set; } @@ -1672,6 +1707,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("removeAttributeNamed:")] void RemoveAttribute (string name); @@ -1715,6 +1751,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("initWithAsset:divisions:patchRadius:")] IntPtr Constructor (MDLAsset asset, int divisions, float patchRadius); @@ -1735,6 +1772,7 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("setVoxelsForMesh:divisions:patchRadius:")] void SetVoxels (MDLMesh mesh, int divisions, float patchRadius); @@ -1788,32 +1826,38 @@ namespace XamCore.ModelIO { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("convertToSignedShellField")] void ConvertToSignedShellField (); [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("isValidSignedShellField")] bool IsValidSignedShellField { get; } [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("shellFieldInteriorThickness")] float ShellFieldInteriorThickness { get; set; } [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("shellFieldExteriorThickness")] float ShellFieldExteriorThickness { get; set; } [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("coarseMesh")] [return: NullAllowed] MDLMesh GetCoarseMesh (); [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("coarseMeshUsingAllocator:")] [return: NullAllowed] MDLMesh GetCoarseMeshUsingAllocator ([NullAllowed] IMDLMeshBufferAllocator allocator); @@ -1874,6 +1918,7 @@ namespace XamCore.ModelIO { { [iOS (10,0)] [Mac (10,12)] + [TV (10,0)] [Export ("initWithStride:")] IntPtr Constructor (nuint stride); diff --git a/src/opengles.cs b/src/opengles.cs index 73983aeb84..aa676a0797 100644 --- a/src/opengles.cs +++ b/src/opengles.cs @@ -64,6 +64,7 @@ namespace XamCore.OpenGLES { bool PresentRenderBuffer (nuint target); [iOS (10,0)] + [TV (10,0)] [Export ("presentRenderbuffer:atTime:")] bool PresentRenderBuffer (nuint target, double presentationTime); diff --git a/src/security.cs b/src/security.cs index 0312868de3..3f5091f171 100644 --- a/src/security.cs +++ b/src/security.cs @@ -136,6 +136,7 @@ namespace XamCore.Security { [iOS (10,0)][Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kSecTrustCertificateTransparencyWhiteList")] NSString CertificateTransparencyWhiteList { get; } } @@ -162,6 +163,7 @@ namespace XamCore.Security { [iOS (10,0)] [Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kSecAttrKeyTypeECSECPrimeRandom")] ECSecPrimeRandom = 2, } @@ -492,6 +494,7 @@ namespace XamCore.Security { [iOS (10,0)] [Mac (10,12)] [Watch (3,0)] + [TV (10,0)] [Field ("kSecAttrAccessGroupToken")] IntPtr AccessGroupToken { get; } } diff --git a/src/spritekit.cs b/src/spritekit.cs index f7e5d42d8e..4331609fd4 100644 --- a/src/spritekit.cs +++ b/src/spritekit.cs @@ -471,6 +471,7 @@ namespace XamCore.SpriteKit { SKScene FromSize (CGSize size); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("sceneDidLoad")] void SceneDidLoad (); @@ -708,6 +709,7 @@ namespace XamCore.SpriteKit { SKShader Shader { get; set; } [iOS (10,0), Mac (10,12)] + [TV (10,0)] [Export ("scaleToSize:")] void ScaleTo (CGSize size); } @@ -1357,10 +1359,12 @@ namespace XamCore.SpriteKit { SKTexture TextureFromNode (SKNode node, CGRect crop); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("preferredFramesPerSecond")] nint PreferredFramesPerSecond { get; set; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [NullAllowed, Export ("delegate", ArgumentSemantic.Weak)] ISKViewDelegate Delegate { get; set; } } @@ -1599,6 +1603,7 @@ namespace XamCore.SpriteKit { IntPtr InitWithNameFloatVector2 (string name, Vector2 value); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithName:vectorFloat2:")] [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] #if WATCH @@ -1615,6 +1620,7 @@ namespace XamCore.SpriteKit { IntPtr InitWithNameFloatVector3 (string name, Vector3 value); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithName:vectorFloat3:")] [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] #if WATCH @@ -1631,6 +1637,7 @@ namespace XamCore.SpriteKit { IntPtr InitWithNameFloatVector4 (string name, Vector4 value); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithName:vectorFloat4:")] [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] #if WATCH @@ -1647,6 +1654,7 @@ namespace XamCore.SpriteKit { IntPtr InitWithNameFloatMatrix2 (string name, Matrix2 value); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithName:matrixFloat2x2:")] [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] #if WATCH @@ -1663,6 +1671,7 @@ namespace XamCore.SpriteKit { IntPtr InitWithNameFloatMatrix3 (string name, Matrix3 value); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithName:matrixFloat3x3:")] [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] #if WATCH @@ -1679,6 +1688,7 @@ namespace XamCore.SpriteKit { IntPtr InitWithNameFloatMatrix4 (string name, Matrix4 value); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("initWithName:matrixFloat4x4:")] [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] #if WATCH @@ -1707,6 +1717,7 @@ namespace XamCore.SpriteKit { Vector2 _FloatVector2Value { get; set; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("vectorFloat2Value", ArgumentSemantic.Assign)] #if WATCH Vector2 FloatVector2Value { @@ -1725,6 +1736,7 @@ namespace XamCore.SpriteKit { Vector3 _FloatVector3Value { get; set; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("vectorFloat3Value", ArgumentSemantic.Assign)] #if WATCH Vector3 FloatVector3Value { @@ -1743,6 +1755,7 @@ namespace XamCore.SpriteKit { Vector4 _FloatVector4Value { get; set; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("vectorFloat4Value", ArgumentSemantic.Assign)] #if WATCH Vector4 FloatVector4Value { @@ -1761,6 +1774,7 @@ namespace XamCore.SpriteKit { Matrix2 _FloatMatrix2Value { get; set; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("matrixFloat2x2Value", ArgumentSemantic.Assign)] #if WATCH Matrix2 FloatMatrix2x2Value { @@ -1779,6 +1793,7 @@ namespace XamCore.SpriteKit { Matrix3 _FloatMatrix3Value { get; set; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("matrixFloat3x3Value", ArgumentSemantic.Assign)] #if WATCH Matrix3 FloatMatrix3x3Value { @@ -1797,6 +1812,7 @@ namespace XamCore.SpriteKit { Matrix4 _FloatMatrix4Value { get; set; } [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Export ("matrixFloat4x4Value", ArgumentSemantic.Assign)] #if WATCH Matrix4 FloatMatrix4x4Value { @@ -1936,6 +1952,7 @@ namespace XamCore.SpriteKit { SKAction ScaleYTo (nfloat scale, double sec); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("scaleToSize:duration:")] SKAction ScaleTo (CGSize size, double sec); @@ -2254,18 +2271,21 @@ namespace XamCore.SpriteKit { // SKAction_SKWarpable [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("warpTo:duration:")] [return: NullAllowed] SKAction WarpTo (SKWarpGeometry warp, double duration); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("animateWithWarps:times:")] [return: NullAllowed] SKAction Animate (SKWarpGeometry[] warps, NSNumber[] times); [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Static] [Export ("animateWithWarps:times:restore:")] [return: NullAllowed] @@ -2794,6 +2814,7 @@ namespace XamCore.SpriteKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] [DisableDefaultCtor] interface SKTileDefinition : NSCopying, NSCoding @@ -2866,6 +2887,7 @@ namespace XamCore.SpriteKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(SKNode))] interface SKTileMapNode : NSCopying, NSCoding { @@ -2963,6 +2985,7 @@ namespace XamCore.SpriteKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] interface SKTileSet : NSCopying, NSCoding { @@ -3008,6 +3031,7 @@ namespace XamCore.SpriteKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] interface SKTileGroup : NSCopying, NSCoding { @@ -3038,6 +3062,7 @@ namespace XamCore.SpriteKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] interface SKTileGroupRule : NSCopying, NSCoding { @@ -3060,11 +3085,13 @@ namespace XamCore.SpriteKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(NSObject))] interface SKWarpGeometry : NSCopying, NSCoding {} [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [Protocol] interface SKWarpable { @@ -3079,6 +3106,7 @@ namespace XamCore.SpriteKit { [Watch (3,0)] [iOS (10,0)][Mac (10,12)] + [TV (10,0)] [BaseType (typeof(SKWarpGeometry))] [DisableDefaultCtor] interface SKWarpGeometryGrid : NSCoding diff --git a/src/uikit.cs b/src/uikit.cs index 9a3bd58ff3..8408473028 100644 --- a/src/uikit.cs +++ b/src/uikit.cs @@ -5488,6 +5488,7 @@ namespace XamCore.UIKit { NSNumber[] AllowedPressTypes { get; set; } [iOS (9,2)] + [TV (9,1)] [Export ("requiresExclusiveTouchType")] bool RequiresExclusiveTouchType { get; set; } diff --git a/tests/introspection/iOS/iOSApiPInvokeTest.cs b/tests/introspection/iOS/iOSApiPInvokeTest.cs index 454f75f9ac..f8bb1c6217 100644 --- a/tests/introspection/iOS/iOSApiPInvokeTest.cs +++ b/tests/introspection/iOS/iOSApiPInvokeTest.cs @@ -70,7 +70,7 @@ namespace Introspection { #if __WATCHOS__ if (!TestRuntime.CheckWatchOSSystemVersion (sdk.Major, sdk.Minor)) return true; -#elif __IOS__ || ___TVOS__ +#elif __IOS__ || __TVOS__ if (!UIDevice.CurrentDevice.CheckSystemVersion (sdk.Major, sdk.Minor)) return true; #else diff --git a/tests/introspection/iOS/iOSApiSelectorTest.cs b/tests/introspection/iOS/iOSApiSelectorTest.cs index 13a2c6f8d5..dbba119c45 100644 --- a/tests/introspection/iOS/iOSApiSelectorTest.cs +++ b/tests/introspection/iOS/iOSApiSelectorTest.cs @@ -171,22 +171,22 @@ namespace Introspection { break; case "SKNode": switch (name) { -#if __TVOS__ - // skip for tvOS 10+ - case "preferredFocusedView": - if (TestRuntime.CheckXcodeVersion (8, 0)) - return true; - break; -#else // UIFocus protocol conformance on iOS10+ case "didUpdateFocusInContext:withAnimationCoordinator:": case "setNeedsFocusUpdate": case "shouldUpdateFocusInContext:": case "updateFocusIfNeeded": +#if __TVOS__ + case "canBecomeFocused": +#else case "preferredFocusedView": +#endif if (!TestRuntime.CheckXcodeVersion (8, 0)) return true; break; +#if __TVOS__ + case "preferredFocusedView": + return true; #endif } break; @@ -595,6 +595,11 @@ namespace Introspection { case "HKBiologicalSexObject": case "HKBloodTypeObject": return !TestRuntime.CheckXcodeVersion (7, 0); +#if __TVOS__ + case "SKAttribute": + case "SKAttributeValue": + return !TestRuntime.CheckXcodeVersion (7, 2); +#endif } break; #else