您的位置:首页 > 移动开发 > Swift

Metal学习(1)

2016-12-24 20:29 267 查看
在iOS 8里,苹果发布了一个新的接口叫做Metal,它是一个支持GPU加速3D绘图的API。Metal和OpenGL ES相似,它也是一个底层API,负责和3D绘图硬件交互。它们之间的不同在于,Metal不是跨平台的。与之相反的,它设计的在苹果硬件上运行得极其高效,与OpenGL
ES相比,它提供了更快的速度和更低的开销。

使用Metal你要做的第一件事就是获取一个MTLDevice的引用。你可以把一个MTLDevice想象成是你和CPU的直接连接。你将通过使用MTLDevice创建所有其他你需要的Metal对象(像是command queues,buffers,textures)。

下面的例子,查看设备的GPU信息

1. 用xcode创建cocoa应用,在storyboard拖一个label到View Controller,放在中间,调整大小使其可以显示多行

2. 在 View Controller.swift 输入下列代码:

import Cocoa

class ViewController: NSViewController {
// 为Label控件创建IBOutlet
@IBOutlet weak var label: NSTextField!

override func viewDidLoad() {
super.viewDidLoad()

/* The MTLCopyAllDevices() 只用在 macOS,
iOS/tvOS 要用 MTLCreateSystemDefaultDevice()查看GPU的信息 https://developer.apple.com/reference/metal/mtldevice */
let devices = MTLCopyAllDevices()
guard let _ = devices.first else {
fatalError("Your GPU does not support Metal!")
}
label.stringValue = "Your system has the following GPU(s):\n"
for device in devices {
label.stringValue += "\(device.name!)\n"
}
}
}
结果如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Mac gpu swift