| //===----------------------------------------------------------------------===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| |
| @_exported import MetalKit // Clang module |
| |
| @available(swift 4) |
| @available(macOS 10.11, iOS 9.0, tvOS 9.0, *) |
| extension MTKMesh { |
| public class func newMeshes(asset: MDLAsset, device: MTLDevice) throws -> (modelIOMeshes: [MDLMesh], metalKitMeshes: [MTKMesh]) { |
| var modelIOMeshes: NSArray? |
| let metalKitMeshes = try MTKMesh.__newMeshes(from: asset, device: device, sourceMeshes: &modelIOMeshes) |
| return (modelIOMeshes: modelIOMeshes as! [MDLMesh], metalKitMeshes: metalKitMeshes) |
| } |
| } |
| |
| @available(swift 4) |
| @available(macOS 10.12, iOS 10.0, tvOS 10.0, *) |
| public func MTKModelIOVertexDescriptorFromMetalWithError(_ metalDescriptor: MTLVertexDescriptor) throws -> MDLVertexDescriptor { |
| var error: NSError? = nil |
| let result = __MTKModelIOVertexDescriptorFromMetalWithError(metalDescriptor, &error) |
| if let error = error { |
| throw error |
| } |
| return result |
| } |
| |
| @available(swift 4) |
| @available(macOS 10.12, iOS 10.0, tvOS 10.0, *) |
| public func MTKMetalVertexDescriptorFromModelIOWithError(_ modelIODescriptor: MDLVertexDescriptor) throws -> MTLVertexDescriptor? { |
| var error: NSError? = nil |
| let result = __MTKMetalVertexDescriptorFromModelIOWithError(modelIODescriptor, &error) |
| if let error = error { |
| throw error |
| } |
| return result |
| } |