ID3D10Texture1D::Map 메서드(d3d10.h)
하위 리소스에 포함된 데이터에 대한 포인터를 가져와서 해당 하위 리소스에 대한 GPU 액세스를 거부합니다.
구문
HRESULT Map(
[in] UINT Subresource,
[in] D3D10_MAP MapType,
[in] UINT MapFlags,
[out] void **ppData
);
매개 변수
[in] Subresource
형식: UINT
하위 리소스의 인덱스 번호입니다. 자세한 내용은 D3D10CalcSubresource 를 참조하세요.
[in] MapType
형식: D3D10_MAP
리소스에 대한 CPU의 읽기 및 쓰기 권한을 지정합니다. 가능한 값은 D3D10_MAP 참조하세요.
[in] MapFlags
형식: UINT
GPU가 사용 중일 때 CPU가 수행해야 하는 작업을 지정하는 플래그입니다. 이 플래그는 선택 사항입니다.
[out] ppData
형식: void**
텍스처 리소스 데이터에 대한 포인터입니다.
반환 값
형식: HRESULT
이 함수가 성공하면 S_OK 반환합니다. 다른 제한 사항 및 Map 메서드에서 반환할 수 있는 오류 값 목록은 비고를 참조하세요.
설명
텍스처를 매핑하면 CPU가 텍스처의 하위 리소스에 있는 기본 데이터에 직접 액세스할 수 있습니다. 메서드가 성공하려면 매핑되는 텍스처를 적절한 플래그( D3D10_CPU_ACCESS_FLAG 참조)로 만들어야 하며 지정된 사용량( D3D10_USAGE 참조)은 D3D10_USAGE_DYNAMIC 또는 D3D10_USAGE_STAGING 합니다.
Map 메서드의 일반적인 오류는 다음 반환 값으로 표시됩니다.
위의 반환 값에 대한 자세한 내용은 DXGI_ERROR 참조하세요.
맵 에는 다음과 같은 제한 사항이 있습니다.
- 단일 하위 리소스를 여러 번 매핑할 수 없습니다. 즉, 이미 매핑된 하위 리소스에서 Map 을 호출하지 않습니다.
- 파이프라인에 바인딩된 모든 하위 리소스는 렌더링 작업( 즉, ID3D10Device::D raw 이전)을 실행하기 전에 매핑을 해제해야 합니다.
FLOAT* pTexels = (FLOAT*)pData;
for( UINT col = 0; col < width; col++ )
{
pTexels[col*4 + 0]; // Alpha
pTexels[col*4 + 1]; // Blue
pTexels[col*4 + 2]; // Green
pTexels[col*4 + 3]; // Red
}
Direct3D 9와 Direct3D 10의 차이점: Direct3D 10의 지도는 Direct3D 9의 리소스 잠금과 유사합니다. |
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d10.h |
라이브러리 | D3D10.lib |