-
[Metal] MTKView > Drawing Mode (Configuring the Drawing Behavior)iOS/Metal 2023. 4. 5. 19:03
3줄 요약.
3가지 모드가 있음.
아무것도 설정하지 않으면 draw 가 계속 호출되는 Timed updates 임. 주로 게임이나 주기적 업데이트가 필요한 애니메이션에 사용됨.
필요할 때마다 draw 해주기 위해서는 enableSetNeedsDisplay = false 로 설정해서 Draw notifications 로 바꿔줘야함.
이러면 invalidates 가 있을 때만 호출됨. 보통 setNeedsDisplay() 를 호출함. 일반적인 앱에선 이걸 사용
자신만의 새로운 흐름을 만들기 위해서는 isPaused = true 로 설정함. 정확한 예시는 잘 모르겠음3가지 Drawing Modes
MTKView 는 3가지 Drawing Modes 를 지원합니다.
결정 변수
Drawing Mode 를 결정하는 2가지 변수의 상태에 따라 Drawing Mode 가 결정됩니다.
두 값 모두 false 가 default 값 입니다.- isPaused: draw loop 를 멈출지 결정합니다. (default: false)
- enableSetNeedsDisplay: setNeedsDisplay() 호출에 반응할지 결정합니다. (default: false)3가지 모드
Timed updates
isPaused: false / enableSetNeedsDisplay: false
아무것도 하지 않았을 때의 기본 동작입니다. 내부 시간에 따라 계속 redraws 합니다.
게임이나 주기적으로 업데이트가 필요한 애니매이션이 있는 컨텐츠에 사용합니다.Draw notifications
isPaused: false / enableSetNeedsDisplay: true
컨텐츠에 invalidates 가 생겼을 때 다시 그립니다. 보통 setNeedsDisplay() 를 사용합니다.
데이터 변화에 따라 업데이트 하는 전통적인 흐름을 가진 앱에 사용합니다.
주기적으로 업데이트 하지 않습니다.Explicit drawing
isPaused: ture / enableSetNeedsDisplay: false
custom workflow 를 만들어서 사용하고 싶을 때 사용합니다.
참고
MTKView > Configuring the Drawing Behavior
'iOS > Metal' 카테고리의 다른 글
[MTL] MTLTexture (0) 2024.08.20