MTKTextureLoader

Horus-iOS·2022년 7월 7일
0

https://developer.apple.com/documentation/metalkit/mtktextureloader

An object that decodes common image formats into Metal textures for use in your app.

앱에서 사용하기 위해 일반적인 이미지 포맷을 메탈 텍스처로 디코딩하는 객체입니다.

Declaration

class MTKTextureLoader : NSObject

Overview

기존에 존재하고 있었던 데이터의 컨텐츠로 메탈 텍스처를 생성하려면 MTKTextureLoader를 사용하시기 바랍니다. 이 클래스는 PNG, JPEG, TIFF와 같은 일반적인 파일 포맷을 읽을 수 있습니다. 또한 KTXPVR 파일, 에셋 카탈로그, 코어 그래픽스 이미지, 기타 다른 소스로부터 이미지 데이터를 불러올 수 있습니다. 이 객체는 이미지 데이터로부터 아웃풋 텍스처 포맷 및 픽셀 포맷을 추론합니다. 이미지 불러오기 및 텍스처 생성 프로세스를 바꾸기 위해서 옵션을 구체화할 수 있습니다.

텍스처를 동기 혹은 비동기적으로 생성할 수 있습니다.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

0개의 댓글