我知道在SceneKit中,你可以在SKView
的一侧启用横幅来查看实时帧率和其他有用的调试信息。但是对于MTKView
呢?我似乎找不到这样的属性来启用,或者如何查询当前帧率。(因为我正在渲染一个帧率约为0.5fps的内容)
var showDebugInformation = true
这样的标志符),但这听起来有点麻烦。draw
方法中手动监视帧时间并在每次绘制时更新标签。一个大致的概述可能如下:var previousFrameAtTime: Date
let lastFrameTime = CurrentValueSubject<TimeInterval, Never>(.infinity)
func draw(in view: MTKView) {
lastFrameTime.send(Date().timeIntervalSince(previousFrameAtTime))
previousFrameAtTime = Date()
// ...
}
import Combine
class MyViewController: UIViewController {
let label = UILabel()
var cancellables: [AnyCancellable] = []
func subscribeToFrameTime() {
renderer.lastFrameTime
.sink { label.text = "\($0 * 1000) ms." }
.store(in: &cancellables)
}
}