Metal이란?
- GPU 프로그래밍을 가능케 하는 프레임워크
- 애플기기에서 개발자가 3D 그래픽을 렌더링하고 GPU에 대한 로우 액세스를 제공하기 위한 프레임워크
- 기존의 OpenGL을 WWDC2018에서 Deprecate시키면서 대체, 더욱 최적화
- Core Animation의 하위에 존재
- C++ 기반으로 작성됨, 다양한 shader를 제작 가능
Device
- Device는 iPhone 혹은 Mac 내부의 GPU의 추상화
- GPU는 CPU와는 별개의 프로세서 이며, 다양한 종류의 작업에 특화됨
- 코드에서는, MTLDevice 프로토콜을 채택하고 있는 객체
- 이 프로토콜은 GPU 리소스를 할당하는 메소드를 포함
Getting a Device
- Metal framework를 사용하려면 Metalkit 을 import
- Metal device를 얻는 가장 간단한 방법은 MTLCreateSystemDefaultDevice()를 호출, 이 함수는 기본 MTlDevice? 타입의 Device를 리턴함. 만약 시스템이 Metal을 지원하지 않으면, nil을 반환함
출처: https://medium.com/@warrenm/thirty-days-of-metal-day-1-devices-e371729d05ca