# fixed in .NET - API break !incorrect-protocol-member! MDLObjectContainerComponent::count is REQUIRED and should be abstract !incorrect-protocol-member! MDLObjectContainerComponent::objectAtIndexedSubscript: is REQUIRED and should be abstract !incorrect-protocol-member! MDLTransformComponent::keyTimes is REQUIRED and should be abstract !incorrect-protocol-member! MDLTransformComponent::resetsTransform is REQUIRED and should be abstract !incorrect-protocol-member! MDLTransformComponent::setResetsTransform: is REQUIRED and should be abstract ## old @optional methods that became @required (abstract) in existing types (breaking changes) !incorrect-protocol-member! MDLMeshBuffer::allocator is REQUIRED and should be abstract !incorrect-protocol-member! MDLMeshBuffer::length is REQUIRED and should be abstract !incorrect-protocol-member! MDLMeshBuffer::type is REQUIRED and should be abstract !incorrect-protocol-member! MDLMeshBuffer::zone is REQUIRED and should be abstract !incorrect-protocol-member! MDLMeshBufferZone::allocator is REQUIRED and should be abstract !incorrect-protocol-member! MDLMeshBufferZone::capacity is REQUIRED and should be abstract ## we only export the overload that expose an NSError !missing-selector! MDLAsset::exportAssetToURL: not bound ## those are just doing the same as the setComponent:forProtocol: and componentConformingToProtocol: ## objectForKeyedSubscript:'s description is: "Allows shorthand [key] syntax for componentConformingToProtocol:" !missing-selector! MDLObject::objectForKeyedSubscript: not bound !missing-selector! MDLObject::setObject:forKeyedSubscript: not bound ## no generator support for FastEnumeration - https://bugzilla.xamarin.com/show_bug.cgi?id=4391 !missing-protocol-conformance! MDLAsset should conform to NSFastEnumeration !missing-protocol-conformance! MDLMaterial should conform to NSFastEnumeration # Initial result from new rule missing-release-attribute-on-return-value !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.IMDLMeshBufferAllocator::CreateBuffer(Foundation.NSData,ModelIO.MDLMeshBufferType)'s selector's ('newBufferWithData:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.IMDLMeshBufferAllocator::CreateBuffer(ModelIO.IMDLMeshBufferZone,Foundation.NSData,ModelIO.MDLMeshBufferType)'s selector's ('newBufferFromZone:data:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.IMDLMeshBufferAllocator::CreateBuffer(ModelIO.IMDLMeshBufferZone,System.nuint,ModelIO.MDLMeshBufferType)'s selector's ('newBufferFromZone:length:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.IMDLMeshBufferAllocator::CreateBuffer(System.nuint,ModelIO.MDLMeshBufferType)'s selector's ('newBuffer:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferAllocatorWrapper::CreateBuffer(Foundation.NSData,ModelIO.MDLMeshBufferType)'s selector's ('newBufferWithData:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferAllocatorWrapper::CreateBuffer(ModelIO.IMDLMeshBufferZone,Foundation.NSData,ModelIO.MDLMeshBufferType)'s selector's ('newBufferFromZone:data:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferAllocatorWrapper::CreateBuffer(ModelIO.IMDLMeshBufferZone,System.nuint,ModelIO.MDLMeshBufferType)'s selector's ('newBufferFromZone:length:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferAllocatorWrapper::CreateBuffer(System.nuint,ModelIO.MDLMeshBufferType)'s selector's ('newBuffer:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferDataAllocator::CreateBuffer(Foundation.NSData,ModelIO.MDLMeshBufferType)'s selector's ('newBufferWithData:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferDataAllocator::CreateBuffer(ModelIO.IMDLMeshBufferZone,Foundation.NSData,ModelIO.MDLMeshBufferType)'s selector's ('newBufferFromZone:data:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferDataAllocator::CreateBuffer(ModelIO.IMDLMeshBufferZone,System.nuint,ModelIO.MDLMeshBufferType)'s selector's ('newBufferFromZone:length:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBuffer ModelIO.MDLMeshBufferDataAllocator::CreateBuffer(System.nuint,ModelIO.MDLMeshBufferType)'s selector's ('newBuffer:type:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBufferZone ModelIO.IMDLMeshBufferAllocator::CreateZone(Foundation.NSNumber[],Foundation.NSNumber[])'s selector's ('newZoneForBuffersWithSize:andType:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBufferZone ModelIO.IMDLMeshBufferAllocator::CreateZone(System.nuint)'s selector's ('newZone:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBufferZone ModelIO.MDLMeshBufferAllocatorWrapper::CreateZone(Foundation.NSNumber[],Foundation.NSNumber[])'s selector's ('newZoneForBuffersWithSize:andType:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBufferZone ModelIO.MDLMeshBufferAllocatorWrapper::CreateZone(System.nuint)'s selector's ('newZone:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBufferZone ModelIO.MDLMeshBufferDataAllocator::CreateZone(Foundation.NSNumber[],Foundation.NSNumber[])'s selector's ('newZoneForBuffersWithSize:andType:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.IMDLMeshBufferZone ModelIO.MDLMeshBufferDataAllocator::CreateZone(System.nuint)'s selector's ('newZone:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreateCapsule(System.Single,OpenTK.Vector2,System.nuint,System.nuint,System.nuint,ModelIO.MDLGeometryType,System.Boolean,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newCapsuleWithHeight:radii:radialSegments:verticalSegments:hemisphereSegments:geometryType:inwardNormals:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreateCylindroid(System.Single,OpenTK.Vector2,System.nuint,System.nuint,ModelIO.MDLGeometryType,System.Boolean,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newCylinderWithHeight:radii:radialSegments:verticalSegments:geometryType:inwardNormals:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreateEllipsoid(OpenTK.Vector3,System.nuint,System.nuint,ModelIO.MDLGeometryType,System.Boolean,System.Boolean,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newEllipsoidWithRadii:radialSegments:verticalSegments:geometryType:inwardNormals:hemisphere:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreateEllipticalCone(System.Single,OpenTK.Vector2,System.nuint,System.nuint,ModelIO.MDLGeometryType,System.Boolean,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newEllipticalConeWithHeight:radii:radialSegments:verticalSegments:geometryType:inwardNormals:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreateIcosahedron(System.Single,System.Boolean,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newIcosahedronWithRadius:inwardNormals:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreateIcosahedron(System.Single,System.Boolean,ModelIO.MDLGeometryType,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newIcosahedronWithRadius:inwardNormals:geometryType:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreatePlane(OpenTK.Vector2,OpenTK.Vector2i,ModelIO.MDLGeometryType,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newPlaneWithDimensions:segments:geometryType:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::CreateSubdividedMesh(ModelIO.MDLMesh,System.nuint,System.nuint)'s selector's ('newSubdividedMesh:submeshIndex:subdivisionLevels:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. !missing-release-attribute-on-return-value! ModelIO.MDLMesh ModelIO.MDLMesh::NewBoxWithDimensions(OpenTK.Vector3,OpenTK.Vector3i,ModelIO.MDLGeometryType,System.Boolean,ModelIO.IMDLMeshBufferAllocator)'s selector's ('newBoxWithDimensions:segments:geometryType:inwardNormals:allocator:') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. # incorrect result on `ref` parameter !extra-null-allowed! 'System.Void ModelIO.MDLObject::EnumerateChildObjects(ObjCRuntime.Class,ModelIO.MDLObject,ModelIO.MDLObjectHandler,System.Boolean&)' has a extraneous [NullAllowed] on parameter #3