MTKViewのcurrentRenderPassDescriptor

MTLRenderPassDescriptor、普通はこういうことをやる:

let renderPassDescriptor = MTLRenderPassDescriptor()
renderPassDescriptor.colorAttachments[0].texture = texture
renderPassDescriptor.colorAttachments[0].loadAction = .clear
renderPassDescriptor.colorAttachments[0].storeAction = .store
let renderEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: passDescriptor)!

しかしMTKViewのcurrentRenderPassDescriptorを使えば、描画先テクスチャがMTKViewのcurrentDrawable.textureである限りは、colorAttachments[0].textureへのセットを省略できる。

let renderPassDescriptor = renderDestination.currentRenderPassDescriptor!
let renderEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: renderPassDescriptor)!

で、正直なことをいうとこのことを知らずになんとなく使っていた。(ついさっきARKitのMetalレンダリングテンプレートのコードを読んでいて気付いた)

で、改めてちゃんとリファレンスを読んでみる。

リファレンスに書いてあったこと

ここから先は

8,322字
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/