다음을 통해 공유


D3D11_BIND_FLAG 열거형(d3d11.h)

파이프라인에 리소스를 바인딩하는 방법을 식별합니다.

Syntax

typedef enum D3D11_BIND_FLAG {
  D3D11_BIND_VERTEX_BUFFER = 0x1L,
  D3D11_BIND_INDEX_BUFFER = 0x2L,
  D3D11_BIND_CONSTANT_BUFFER = 0x4L,
  D3D11_BIND_SHADER_RESOURCE = 0x8L,
  D3D11_BIND_STREAM_OUTPUT = 0x10L,
  D3D11_BIND_RENDER_TARGET = 0x20L,
  D3D11_BIND_DEPTH_STENCIL = 0x40L,
  D3D11_BIND_UNORDERED_ACCESS = 0x80L,
  D3D11_BIND_DECODER = 0x200L,
  D3D11_BIND_VIDEO_ENCODER = 0x400L
} ;

상수

 
D3D11_BIND_VERTEX_BUFFER
값: 0x1L
버퍼를 꼭짓점 버퍼로 입력 어셈블러 단계에 바인딩합니다.
D3D11_BIND_INDEX_BUFFER
값: 0x2L
버퍼를 인덱스 버퍼로 입력 어셈블러 단계에 바인딩합니다.
D3D11_BIND_CONSTANT_BUFFER
값: 0x4L
버퍼를 셰이더 단계에 상수 버퍼로 바인딩합니다. 이 플래그는 다른 바인딩 플래그와 결합되지 않을 수 있습니다.
D3D11_BIND_SHADER_RESOURCE
값: 0x8L
버퍼 또는 텍스처를 셰이더 단계에 바인딩합니다. 이 플래그는 D3D11_MAP_WRITE_NO_OVERWRITE 플래그와 함께 사용할 수 없습니다.

참고 Windows 8부터 사용할 수 있는 Direct3D 11.1 런타임을 사용하면 동적 상수 버퍼 및 동적 버퍼의 SRV(셰이더 리소스 뷰)를 D3D11_MAP_WRITE_NO_OVERWRITE 매핑할 수 있습니다. Direct3D 11 및 이전 런타임은 꼭짓점 또는 인덱스 버퍼에 대한 매핑을 제한했습니다. Direct3D 디바이스가 이러한 기능을 지원하는지 확인하려면 D3D11_FEATURE_D3D11_OPTIONS사용하여 ID3D11Device::CheckFeatureSupport를 호출합니다. CheckFeatureSupportD3D11_FEATURE_DATA_D3D11_OPTIONS 구조체의 멤버를 디바이스의 기능으로 채웁니다. 여기에 관련된 멤버는 MapNoOverwriteOnDynamicConstantBufferMapNoOverwriteOnDynamicBufferSRV입니다.

 
D3D11_BIND_STREAM_OUTPUT
값: 0x10L
스트림 출력 단계에 대한 출력 버퍼를 바인딩합니다.
D3D11_BIND_RENDER_TARGET
값: 0x20L
텍스처를 출력 병합기 단계의 렌더링 대상으로 바인딩합니다.
D3D11_BIND_DEPTH_STENCIL
값: 0x40L
출력 병합 단계의 깊이 스텐실 대상으로 텍스처를 바인딩합니다.
D3D11_BIND_UNORDERED_ACCESS
값: 0x80L
순서가 지정되지 않은 액세스 리소스를 바인딩합니다.
D3D11_BIND_DECODER
값: 0x200L
디코더 API에서 출력을 수신하는 데 2D 텍스처 가 사용됨을 나타내려면 이 플래그를 설정합니다. 디코더 출력에 대한 리소스를 만드는 일반적인 방법은 ID3D11Device::CreateTexture2D 메서드를 호출하여 2D 텍스처 배열을 만드는 것입니다. 그러나 ID3D11Device::CreateShaderResourceView 호출에서는 이 플래그로 만든 텍스처 배열을 사용할 수 없습니다.

Direct3D 11: 이 값은 Direct3D 11.1까지 지원되지 않습니다.
D3D11_BIND_VIDEO_ENCODER
값: 0x400L
이 플래그를 설정하여 2D 텍스처 가 비디오 인코더 API에서 입력을 수신하는 데 사용됨을 나타냅니다. 비디오 인코더에 대한 리소스를 만드는 일반적인 방법은 ID3D11Device::CreateTexture2D 메서드를 호출하여 2D 텍스처 배열을 만드는 것입니다. 그러나 ID3D11Device::CreateShaderResourceView 호출에서는 이 플래그로 만든 텍스처 배열을 사용할 수 없습니다.

Direct3D 11: 이 값은 Direct3D 11.1까지 지원되지 않습니다.

설명

일반적으로 바인딩 플래그는 비트 OR(상수 버퍼 플래그 제외)을 사용하여 결합할 수 있습니다. 그러나 단일 플래그를 사용하여 디바이스가 리소스 사용량을 최적화할 수 있도록 해야 합니다.

이 열거형은 다음에서 사용됩니다.

셰이더 리소스 버퍼는 상수 버퍼가 아닙니다. 오히려 텍스처 또는 버퍼 데이터를 포함하는 셰이더에 바인딩된 텍스처 또는 버퍼 리소스입니다(버퍼의 단일 요소 형식으로 제한되지 않음). 셰이더 리소스 버퍼는 D3D11_BIND_SHADER_RESOURCE 플래그로 만들어지고 ID3D11DeviceContext::GSSetShaderResources, ID3D11DeviceContext::P SSetShaderResources 또는 ID3D11DeviceContext::VSSetShaderResources 중 하나를 사용하여 파이프라인에 바인딩됩니다. 또한 셰이더 리소스 버퍼는 D3D11_MAP_WRITE_NO_OVERWRITE 플래그를 사용할 수 없습니다.
참고 Windows 8부터 사용할 수 있는 Direct3D 11.1 런타임을 사용하면 동적 상수 버퍼 및 동적 버퍼의 SRV(셰이더 리소스 뷰)를 D3D11_MAP_WRITE_NO_OVERWRITE 매핑할 수 있습니다. Direct3D 11 및 이전 런타임은 꼭짓점 또는 인덱스 버퍼에 대한 매핑을 제한했습니다. Direct3D 디바이스가 이러한 기능을 지원하는지 확인하려면 D3D11_FEATURE_D3D11_OPTIONS사용하여 ID3D11Device::CheckFeatureSupport를 호출합니다. CheckFeatureSupportD3D11_FEATURE_DATA_D3D11_OPTIONS 구조체의 멤버를 디바이스의 기능으로 채웁니다. 여기에 관련된 멤버는 MapNoOverwriteOnDynamicConstantBufferMapNoOverwriteOnDynamicBufferSRV입니다.
 

요구 사항

   
머리글 d3d11.h

추가 정보

리소스 열거형