DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 정수 D3DUSAGE [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
리소스의 사용법을 지정하는 옵션. 다음 표에, 각 리소스 타입의 사용법을 정리한다. 2 번째의 표에, 각 리소스 타입으로 이용할 수 있는 사용법을 나타낸다.
#define | 설명 |
---|---|
D3DUSAGE_AUTOGENMIPMAP | 리소스는, 밉맵을 자동 생성한다. 「밉맵의 자동 생성」을 참조할것. 밉맵의 자동 생성은, 볼륨 텍스처 및 스텐실 표면/텍스처에서는 지원하지 않는다.
이 사용법은, 시스템 메모리 (D3DPOOL_SYSTEMMEM) 내의 리소스에 대해서는 유효하지 않다. |
D3DUSAGE_DEPTHSTENCIL | 리소스는, 스텐실 버퍼이다. D3DUSAGE_DEPTHSTENCIL 는, D3DPOOL_DEFAULT 와 동시에 사용한다. |
D3DUSAGE_DMAP | 리소스는, 디스플레이스먼트 맵이다. |
D3DUSAGE_DONOTCLIP | 정점 버퍼의 내용이 결코 클리핑을 요구하지 않는 것을 나타낸다. 이 플래그가 설정된 버퍼를 사용해 렌더링 하는 경우는, D3DRS_CLIPPING 렌더링 스테이트가 FALSE 로 설정되지 않으면 안 된다. |
D3DUSAGE_DYNAMIC | 정점 버퍼가 동적인 메모리의 사용을 필요로 하는 것을 나타낸다. 버퍼의 배치 장소를 드라이버를 결정될 수 있으므로, 드라이버에 있어 유용하다. 일반적으로, 정적인 정점 버퍼는 비디오 메모리에 배치되어 동적인 정점 버퍼는 AGP (Accelerated Graphics Port) 메모리에 배치된다. 그 밖에 정적인 사용법은 없기 때문에 주의 해야 한다. D3DUSAGE_DYNAMIC 를 지정하고 있지 않는 경우는, 정적인 정점 버퍼가 생성 된다. D3DUSAGE_DYNAMIC 는, D3DLOCK_DISCARD 및 D3DLOCK_NOOVERWRITE 잠금 플래그에 의해 엄밀하게 강제당한다. 그 결과, D3DLOCK_DISCARD 및 D3DLOCK_NOOVERWRITE 는, D3DUSAGE_DYNAMIC 로 생성 된 정점 버퍼에 대해서만 유효가 된다. 이러한 플래그는, 정적인 정점 버퍼에 대해서는 유효하지 않다. 더 자세한 정보는, 「리소스의 관리」를 참조할것. 동적인 정점 버퍼의 사용법의 더 자세한 정보는, 「퍼포먼스의 최적화」를 참조할것. D3DUSAGE_DYNAMIC 와 D3DPOOL_MANAGED 는 호환성이 없기 때문에, 동시에는 사용할 수 없다. 「D3DPOOL 」를 참조할것. 텍스처에서는, D3DUSAGE_DYNAMIC 를 지정할 수 있다. 다만, 관리되는 텍스처에서는 D3DUSAGE_DYNAMIC 를 사용할 수 없다. 동적 텍스처의 더 자세한 정보는, 「동적 텍스처의 사용법」을 참조할것. |
D3DUSAGE_NPATCHES | N 패치의 드로잉(Drawing)에 정점 버퍼를 사용할 때에 설정한다. |
D3DUSAGE_POINTS | 포인트의 드로잉(Drawing)에 정점 버퍼를 사용할 때에 설정한다. |
D3DUSAGE_RENDERTARGET | 리소스는, 렌더링 타겟이다. D3DUSAGE_RENDERTARGET 는, D3DPOOL_DEFAULT 와 동시에 사용한다. |
D3DUSAGE_RTPATCHES | 고차원 기본도형의 드로잉(Drawing)에 정점 버퍼를 사용할 때에 설정한다. |
D3DUSAGE_SOFTWAREPROCESSING | 이 플래그를 사용하면 정점 처리가 소프트웨어로 행해진다. 이 플래그를 사용하지 않는 경우는, 정점 처리가 하드웨어로 행해진다.
D3DUSAGE_SOFTWAREPROCESSING 은, 소프트웨어 정점 처리로 특정의 텍스처 포맷이 정점 텍스처로서 사용할 수 있을지 어떨지를 확인하기 위해서,IDirect3D9::CheckDeviceFormat 와 동시에 사용한다. 사용할 수 있는 경우는, 3DPOOL_SCRATCH 로 텍스처를 생성 할 필요가 있다. |
D3DUSAGE_WRITEONLY | 정점 버퍼에의 쓰기 조작 밖에 실행하지 않는 것을 시스템에 알린다. 이 플래그를 사용하는 것으로, 드라이버는 최적인 메모리 영역을 선택해 효율적으로 쓰기 처리나 렌더링을 실행한다. 이 능력을 사용해 생성 된 정점 버퍼로부터의 읽기는 실패한다. D3DUAGE_WRITEONLY 를 지정하지 않는 D3DPOOL_DEFAULT 를 사용해 생성 한 버퍼는, 퍼포먼스의 대폭적인 저하를 가져올 가능성이 있다. |
특정의 풀 타입에 대해서, 특정의 사용법을 사용할 수 있다. 더 자세한 정보는, 「D3DPOOL 」를 참조할것.
사용법은, 리소스를 생성 할 경우에 지정하는지, 기존의 리소스의 능력을 테스트할 경우에 CheckDeviceFormat 를 사용해 지정한다. 이 표는, 각각의 리소스 타입에 적용 가능한 사용법을 나타내고 있다.
사용법 | 정점 버퍼 생성 | 인덱스 버퍼 생성 | 텍스처 생성 | 큐브 텍스처 생성 | 볼륨 텍스처 생성 | 표면 생성 | 장치 포맷 체크 |
---|---|---|---|---|---|---|---|
D3DUSAGE_AUTOGENMIPMAP | x | x | x | ||||
D3DUSAGE_DEPTHSTENCIL | x | x | x | x | |||
D3DUSAGE_DMAP | x | x | |||||
D3DUSAGE_DONOTCLIP | x | x | |||||
D3DUSAGE_DYNAMIC | x | x | x | x | x | x | |
D3DUSAGE_NPATCHES | x | x | |||||
D3DUSAGE_POINTS | x | x | |||||
D3DUSAGE_RTPATCHES | x | x | |||||
D3DUSAGE_RENDERTARGET | x | x | x | x | |||
D3DUSAGE_SOFTWAREPROCESSING | x | x | x | x | x | x | |
D3DUSAGE_WRITEONLY | x | x |
하드웨어가 이러한 사용법을 지원 하고 있을지 어떨지를 체크하려면 ,IDirect3D9::CheckDeviceFormat 를 사용하는 것.
이하에 리소스 생성 메서드를 나타낸다.
풀 타입의 더 자세한 정보는, 「D3DPOOL 」를 참조할것.
헤더 | d3d9types.h |
---|---|
최저한의 operating system | Windows 98 |