본문 바로가기

오래된 흔적/게임

D3DPOOL

typedef enum D3DPOOL 
 D3DPOOL_DEFAULT = 0, 
 D3DPOOL_MANAGED = 1, 
 D3DPOOL_SYSTEMMEM = 2, 
 D3DPOOL_SCRATCH = 3, 
 D3DPOOL_FORCE_DWORD = 0x7fffffff, 
} D3DPOOL, *LPD3DPOOL;

  1. D3DPOOL_DEFALUT

    로컬 비디오 메모리와 AGP 메모리를 포함한 비디오 메모리의 적당한 위치에 리소스들이 놓여진다.
    D3DPOOL_DEFAULT는 D3DPOOL_MANAGED와 D3DPOOL_SYSTEMMEM으로 나뉜다. 


  2. D3DPOOL_MANAGED

    리소스가 필요에따라 자동으로 비디오 메모리로 복사된다. 또한 Managed 리소스는 시스템  메모리에 baked되어 있기 때문에 디바이스 손실이 일어났을때 다시 생성할 필요가 없다. Managed 리소스는 Lock이 가능하다. 시스템 메모리에 있는 카피본만 직접적으로 수정가능하다.

  3. D3DPOOL_SYSTEMMEM

    리소스는 Direct3D 디바이스에 의해 접근이 불가능한 시스템 메모리 공간에 존재한다. 이런 방식의 메모리 할당은 시스템 RAM을  소비하지만 페이지 가능한 RAM을 가능하지는 않는다. 이러한 리소스들은 디바이스 손실시 재생성할 필요 없다.
    메모리 풀에 있는 리소스들은 Lock이 가능하고 D3DPOOL_DEFALUT로 생성된 리소스들과 함께 IDirect3DDevice9::UpdateSurface 또는 IDirect3DDevice9::UpdateTexture 함수의 리소스로 사용될 수 있다.

  4. D3DPOOL_SCRATCH

    시스템 RAM에 놓여지는 리소스 생성 방식이다. 디바이스 손실시 재생성 할 필요 없다. 

  5. D3DPOOL_FORCE_DWORD


'오래된 흔적 > 게임' 카테고리의 다른 글

Internet Explorer In Game  (0) 2009.08.18
3D 용어정리  (0) 2009.05.18
SVN과 CVS의 차이점  (0) 2009.04.28