https://developer.apple.com/documentation/metalkit/mtktextureloader
An object that decodes common image formats into Metal textures for use in your app.
앱에서 사용하기 위해 일반적인 이미지 포맷을 메탈 텍스처로 디코딩하는 객체입니다.
class MTKTextureLoader : NSObject
기존에 존재하고 있었던 데이터의 컨텐츠로 메탈 텍스처를 생성하려면 MTKTextureLoader
를 사용하시기 바랍니다. 이 클래스는 PNG
, JPEG
, TIFF
와 같은 일반적인 파일 포맷을 읽을 수 있습니다. 또한 KTX
와 PVR
파일, 에셋 카탈로그, 코어 그래픽스 이미지, 기타 다른 소스로부터 이미지 데이터를 불러올 수 있습니다. 이 객체는 이미지 데이터로부터 아웃풋 텍스처 포맷 및 픽셀 포맷을 추론합니다. 이미지 불러오기 및 텍스처 생성 프로세스를 바꾸기 위해서 옵션을 구체화할 수 있습니다.
텍스처를 동기 혹은 비동기적으로 생성할 수 있습니다.MTKTextureLoader
메소드들은 MTLTexture
객체를 반환합니다. 텍스처 생성 후 텍스처에 강한 참조를 유지해야 합니다.
텍스처를 생성하기 위해 사용해야 하는 디바이스 객체를 사용해서 MTKTextureLoader
를 초기화한 후 텍스처 생성을 위해 텍스처 로더의 메소드 중 한 가지를 호출해야 합니다. 아래 코드는 URL에 저장된 데이터로부터 텍스처를 동기적으로 생성합니다. 옵션은 기본값입니다.
- (id<MTLTexture>)loadTextureUsingMetalKit: (NSURL *) url device: (id<MTLDevice>) device {
MTKTextureLoader *loader = [[MTKTextureLoader alloc] initWithDevice: device];
id<MTLTexture> texture = [loader newTextureWithContentsOfURL:url options:nil error:nil];
if(!texture)
{
NSLog(@"Failed to create the texture from %@", url.absoluteString);
return nil;
}
return texture;
}
기본적인 텍스처 로딩 동작이 필요한 경우 텍스처를 생성하려면 보통 MTKTextureLoader
를 사용합니다. 커스텀 데이터 포맷을 가지고 있는 경우 혹은 텍스처의 컨텐츠를 실시간으로 변경할 필요가 있는 경우MTLTexture
에 있는 메소드를 사용해야 합니다. 더 많은 정보는 Creating and Sampling Textures를 보시기 바랍니다.
Creating and Sampling Textures
https://developer.apple.com/documentation/metal/textures/creating_and_sampling_textures