Quick Reference
text
cache key -> canonical asset path + import options + color-space intent
shared value -> texture resource + SRV + metadata
material -> shader variant + constants + texture/sampler handles
reload -> 새 resource 완성 후 handle 교체, 이전 frame 사용 종료 뒤 해제파일 이름만 같다고 같은 texture가 아닙니다. sRGB·linear 해석, mip 생성, compression과 view format이 다르면 별도 cache entry가 필요할 수 있습니다.
소유권
Renderer 또는 resource manager가 ComPtr로 GPU resource의 장기 수명을 소유하고 material·render item은 안정적인 handle을 참조하는 구조가 단순합니다. Raw interface pointer를 cache 밖에 오래 보관하면 reload 뒤 dangling reference 또는 예상치 못한 수명 연장이 생길 수 있습니다.
Reload는 기존 resource를 먼저 지우지 않고 새 resource 생성과 검증이 모두 성공한 뒤 원자적으로 교체합니다. Immediate context에 binding된 COM 객체도 참조를 유지할 수 있으므로 상태 cache와 binding 해제를 함께 고려합니다.
자주 틀리는 점
- Path 대소문자·상대 경로 차이로 같은 texture를 중복 upload하지 않습니다.
- Render thread 밖에서 immediate context를 무단 사용하지 않습니다.
- Material copy마다 같은 immutable texture를 새로 만들지 않습니다.
- Reload 실패 시 정상 동작하던 이전 resource를 잃지 않습니다.
참고 링크
1 sources