다음을 통해 공유


ID3D10Buffer::Map 메서드(d3d10.h)

리소스에 포함된 데이터에 대한 포인터를 가져와서 리소스에 대한 GPU 액세스를 거부합니다.

구문

HRESULT Map(
  [in]  D3D10_MAP MapType,
  [in]  UINT      MapFlags,
  [out] void      **ppData
);

매개 변수

[in] MapType

형식: D3D10_MAP

리소스 읽기 및 쓰기에 대한 CPU 권한을 지정하는 플래그입니다. 가능한 값은 D3D10_MAP 참조하세요.

[in] MapFlags

형식: UINT

GPU가 사용 중일 때 CPU가 수행해야 하는 작업을 지정하는 플래그입니다( D3D10_MAP_FLAG 참조). 이 플래그는 선택 사항입니다.

[out] ppData

형식: void**

버퍼 리소스 데이터에 대한 포인터입니다.

반환 값

형식: HRESULT

이 함수가 성공하면 S_OK 반환합니다. 다음 목록에는 이 실패할 수 있는 몇 가지 이유가 포함되어 있습니다.

  • MapFlags가 D3D10_MAP_FLAG_DO_NOT_WAIT 지정하고 GPU가 리소스로 아직 완료되지 않은 경우 ID3D10Buffer::Map은 DXGI_ERROR_WAS_STILL_DRAWING 반환합니다.
  • ID3D10Buffer::Map은 MapType에 읽기를 허용하는 플래그가 포함되어 있고 하드웨어 디바이스(즉, 비디오 카드)가 제거된 경우 DXGI_ERROR_DEVICE_REMOVED 반환합니다.
이전 반환 값에 대한 자세한 내용은 DXGI_ERROR 참조하세요.

설명

CPU가 리소스의 콘텐츠를 쓰려면 동적 사용 플래그를 사용하여 리소스를 만들어야 D3D10_USAGE_DYNAMIC. 이러한 콘텐츠를 읽고 쓰려면 D3D10_USAGE_STAGING 스테이징 사용 플래그를 사용하여 리소스를 만들어야 합니다. (이러한 플래그에 대한 자세한 내용은 D3D10_USAGE 참조하세요.) ID3D10Buffer::Map 은 리소스 데이터에 대한 포인터를 검색합니다. 리소스에 효율적으로 액세스하는 방법에 대한 자세한 내용은 리소스 데이터 복사 및 액세스(Direct3D 10)를 참조하세요.

ID3D10Buffer::Unmap을 호출하여 애플리케이션이 리소스에 대한 액세스를 완료했음을 나타냅니다.

ID3D10Buffer::Map 에는 몇 가지 다른 제한 사항이 있습니다. 예를 들면 다음과 같습니다.

  • 동일한 버퍼를 여러 번 매핑할 수 없습니다. 즉, 이미 매핑된 버퍼에서 ID3D10Buffer::Map 을 호출하지 마세요.
  • 렌더링 작업(즉, ID3D10Device::D raw)을 실행하기 전에 파이프라인에 바인딩된 모든 버퍼를 매핑 해제해야 합니다.
Direct3D 9와 Direct3D 10의 차이점:

Direct3D 10의 ID3D10Buffer::Map 은 Direct3D 9의 리소스 잠금 과 유사합니다.

요구 사항

   
대상 플랫폼 Windows
헤더 d3d10.h
라이브러리 D3D10.lib

추가 정보

ID3D10Buffer 인터페이스