MTKView currentRenderPassDescriptor清除颜色

时间:2019-08-05 14:23:30

标签: ios metal metalkit metal-performance-shaders mtkview

我正在使用

绘制MTKView
  override func draw(_ rect: CGRect) {
      var pixelBuffer: CVPixelBuffer?

      syncQueue.sync {
         pixelBuffer = internalPixelBuffer
      }

      guard let drawable = currentDrawable,
         let currentRenderPassDescriptor = currentRenderPassDescriptor,
         let previewPixelBuffer = pixelBuffer else {
            return
      }
      ...

   }

如果可以设置loadAction并清除此渲染过程描述符的颜色,那我就不知道了。默认的透明色是否设置为黑色?

2 个答案:

答案 0 :(得分:2)

如果愿意,可以修改渲染过程描述符。或者,您根本不必使用它。您可以从头开始设置自己的描述符。

最初将描述符设置为与MTKView的属性匹配。因此,描述符的明确颜色来自视图的clearColor属性。该属性的确默认为黑色,因此从某种意义上说是的,描述符的默认透明色为黑色。

答案 1 :(得分:0)

是的,您可以像这样检查它:

let clearColor = currentRenderPassDescriptor.colorAttachments[0].clearColor
print(clearColor)