반응형
iOS 16.1, Xcode 14.1, Swift 5, Playground macOS 환경에서 진행했습니다.
MetalKit에서 제공하는 MTKView는 NSView 또는 UIView를 상속하며,
MTKView는 메탈에 관련된 기능들을 사용할 수 있게 합니다.
MTKView를 사용하기 위해서 먼저 Device를 등록해주어야합니다.
import PlaygroundSupport
import MetalKit
let view = MTKView(frame: frame, device: device)
view.clearColor = MTLClearColor(red: 1, green: 1, blue: 0.8, alpha: 1)
guard let device = MTLCreateSystemDefaultDevice() else {
fatalError("GPU is not supported")
}
GPU로 보내는 명령들로 프레임이 구성되어있습니다.
그 명령은 commandEncoder로 구성되어있고,
commandEncoder는 commandBuffer를 구성하고,
commandBuffer는 commandQueue로 구성되어 있습니다.
(CommandQueue > CommandBuffer > CommandEncoder)
guard let commandQueue = device.makeCommandQueue() else {
fatalError("Could not create a command queue")
}
let commandBuffer = commandQueue.makeCommandBuffer()
let commandEncoder = commandBuffer?.makeRenderCommandEncoder(descriptor: view.currentRenderPassDescriptor!)
마지막 명령어를 저장하고 화면에 표출하는 코드는 아래에 있습니다.
commandEncoder?.endEncoding()
commandBuffer?.presetn(view.currentDrawable!)
commandBuffer?.commit()
PlaygroundPage.current.liveView = view
반응형
'iOS > 라이브러리' 카테고리의 다른 글
[iOS, Metal] Metal에서 Image를 MTKView에 올리는 방법 (0) | 2023.03.21 |
---|---|
[Library, Metal] shader 사용방법 (0) | 2023.02.06 |
[Library, Metal] vertex를 index로 메모리 절약하기 (0) | 2023.02.03 |
[Library, Metal] 삼각형 그리기 (pipeline) (0) | 2023.02.03 |