반응형

iOS 라이브러리 6

[Mac Program] Periphery 소개 및 사용법

AI가 코딩을 도와주는 시대가 왔다.자연어로 구현해야할 요구사항들을 AI에 입력하면 수십~수백줄의 코드를 쏟아내준다.이러한 코드는 겉보기에는 동작을 잘 하는 것 같으나 요구사항을 여러번 요청할 때 최종적으로 쓰이는 코드를 제외하면 나머지 코드는 그대로 프로젝트에 남게된다.그래서 안 쓰이는 코드를 찾아주는 프로그램이 있지 않을까 생각을 하고 찾아보니아니나다를까 안 쓰이는 코드를 스캔하여 출력해주는 프로그램이 있었다. (Periphery)Periphery를 실행하고 스캔을 한다면 안 쓰이는 함수 및 속성을 파악할 수 있다.스캔을 하고 출력된 파일에 들어가서 함수나 속성이 쓰이는지 파악하고 안 쓴다면 지워버려 정리를 할 수 있다. 이 프로그램의 소스는 깃허브에 공개되어있다.https://github.com/p..

[iOS, Metal] Metal에서 Image를 MTKView에 올리는 방법

이 글에서는 Metal에서 이미지를 MTKView에 올리는 방법에 대해 알아보겠습니다. 1. 이미지 로드하기 Metal에서 이미지를 사용하기 위해서는 이미지를 로드해야 합니다. guard let image = UIImage(named: "{이미지 파일 이름}") else { fatalError("이미지를 로드하는 데 실패했습니다.") } 2. Texture 생성하기 이미지를 로드했다면, 이제 해당 이미지를 Metal에서 사용할 수 있는 Texture로 변환해야 합니다. guard let texture = try? MTLTextureLoader(device: device).newTexture(cgImage: image.cgImage!, options: nil) else { fatalError("Textur..

iOS 라이브러리 2023.03.21

[Library, Metal] vertex를 index로 메모리 절약하기

iOS 16.1, Xcode 14.1, Swift 5, Playground 환경에서 진행했습니다. 기존에 삼각형을 그리려면 변수를 저장하여야하는데, 수많은 삼각형을 그리게 되면, 겹치는 꼭지점이 무수히 많아 메모리가 낭비될 것입니다. 그리하여 겹치는 부분은 제거하고 같은 꼭지점은 index로 접근하는 방법이 있습니다. let vertices: [Float] = [ -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0 ] let indices: [UInt16] = [ 0, 1, 2, 2, 3, 0 ] indices에서 첫번째 줄 0, 1, 2는 vertices[0], vertices[1], vertice[2]의 지점을 사용한다는 의미입니다. indices 두번째 줄 2, 3, 0은 vert..

iOS 라이브러리 2023.02.03

[Library, Metal] 삼각형 그리기 (pipeline)

iOS 16.1, Xcode 14.1, Swift 5, Playground 환경에서 진행했습니다. 삼각형의 좌표를 저장하는 [Float] 배열을 만들고, 삼각형의 좌표를 구성하는 Buffer를 생성합니다. let vertices: [Float] = [ 0, 1, 0, -1, -1, 0, 1, -1, 0 ] let vertexBuffer = device.makeBuffer(bytes: vertices, length: vertices.count * MemoryLayout.size) Shader Function은 GPU를 돌리기 위한 작은 프로그램입니다. Shader Function을 작성하기 위하여 Metal Shading Laungage(MSL)을 사용해야합니다. MSL은 C++로 구성되어 있습니다. .m..

iOS 라이브러리 2023.02.03

[Library, Metal] MetalView 그리기

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() e..

iOS 라이브러리 2023.02.03
반응형