다음을 통해 공유


D3D11_RESOURCE_MISC_FLAG 열거형(d3d11.h)

리소스에 대한 옵션을 식별합니다.

Syntax

typedef enum D3D11_RESOURCE_MISC_FLAG {
  D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L,
  D3D11_RESOURCE_MISC_SHARED = 0x2L,
  D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L,
  D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L,
  D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L,
  D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L,
  D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L,
  D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L,
  D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L,
  D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L,
  D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L,
  D3D11_RESOURCE_MISC_GUARDED = 0x8000L,
  D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L,
  D3D11_RESOURCE_MISC_TILED = 0x40000L,
  D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L,
  D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE,
  D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
} ;

상수

 
D3D11_RESOURCE_MISC_GENERATE_MIPS
값: 0x1L
텍스처 리소스에서 ID3D11DeviceContext::GenerateMips 를 사용하여 MIP 맵 생성을 사용하도록 설정합니다. 리소스가 렌더링 대상 및 셰이더 리소스임을 지정하는 바인딩 플래그 를 사용하여 리소스를 만들어야 합니다.
D3D11_RESOURCE_MISC_SHARED
값: 0x2L
둘 이상의 Direct3D 디바이스 간에 리소스 데이터 공유를 사용하도록 설정합니다. 공유할 수 있는 유일한 리소스는 2D 비 mipmapped 텍스처입니다.


D3D11_RESOURCE_MISC_SHAREDD3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 상호 배타적입니다.


WARPREF 디바이스는 공유 리소스를 지원하지 않습니다.
WARP 또는 REF 디바이스에서 이 플래그를 사용하여 리소스를 만들려고 하면 create 메서드가 E_OUTOFMEMORY 오류 코드를 반환합니다.


참고 Windows 8 WARP 디바이스는 공유 리소스를 완벽하게 지원합니다.

 

참고 Windows 8 시작하려면 D3D11_RESOURCE_MISC_SHARED_NTHANDLE 플래그와 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 플래그의 조합을 사용하여 둘 이상의 Direct3D 디바이스 간에 리소스 데이터 공유를 사용하도록 설정하는 것이 좋습니다.

 
D3D11_RESOURCE_MISC_TEXTURECUBE
값: 0x4L
리소스를 6개의 텍스처가 포함된 Texture2DArray 에서 만든 큐브 텍스처로 설정합니다.
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
값: 0x10L
GPU에서 생성된 콘텐츠를 인스턴스화할 수 있습니다.
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
값: 0x20L
리소스를 바이트 주소 버퍼로 사용하도록 설정합니다.
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
값: 0x40L
리소스를 구조화된 버퍼로 사용하도록 설정합니다.
D3D11_RESOURCE_MISC_RESOURCE_CLAMP
값: 0x80L
ID3D11DeviceContext::SetResourceMinLOD에서 사용할 MIP 맵 클램핑이 있는 리소스를 사용하도록 설정합니다.
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
값: 0x100L
IDXGIKeyedMutex::AcquireSync 및 를 사용하여 리소스를 동기화할 수 있도록 합니다.
IDXGIKeyedMutex::ReleaseSync Api.
D3D11_RESOURCE_MISC_FLAG 매개 변수를 사용하는 다음 Direct3D 11 리소스 만들기 API가 새 플래그를 지원하도록 확장되었습니다.


D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 플래그 집합을 사용하여 이러한 메서드를 호출하는 경우 반환된 인터페이스는 IDXGIKeyedMutex 인터페이스를 지원합니다. IUnknown::QueryInterface를 사용하여 리소스에서 IDXGIKeyedMutex 인터페이스에 대한 포인터를 검색할 수 있습니다. IDXGIKeyedMutex 인터페이스는 IDXGIKeyedMutex::AcquireSyncIDXGIKeyedMutex::ReleaseSync API를 구현하여 표면에 대한 액세스를 동기화합니다. Surface를 만드는 디바이스와 OpenSharedResource를 사용하여 표면을 여는 다른 장치는 화면에 렌더링 명령을 실행하기 전에 IDXGIKeyedMutex::AcquireSync 를 호출해야 합니다. 해당 디바이스가 렌더링을 완료하면 IDXGIKeyedMutex::ReleaseSync를 호출해야 합니다.


D3D11_RESOURCE_MISC_SHAREDD3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 상호 배타적입니다.


WARPREF 디바이스는 공유 리소스를 지원하지 않습니다.
WARP 또는 REF 디바이스에서 이 플래그를 사용하여 리소스를 만들려고 하면 create 메서드가 E_OUTOFMEMORY 오류 코드를 반환합니다.


참고 Windows 8 WARP 디바이스는 공유 리소스를 완벽하게 지원합니다.

 
D3D11_RESOURCE_MISC_GDI_COMPATIBLE
값: 0x200L
GDI와 호환되는 리소스를 사용하도록 설정합니다. GDI와 함께 사용하는 표면에서 D3D11_RESOURCE_MISC_GDI_COMPATIBLE 플래그를 설정해야 합니다. D3D11_RESOURCE_MISC_GDI_COMPATIBLE 플래그를 설정하면 IDXGISurface1::GetDC를 통해 표면에서 GDI 렌더링을 수행할 수 있습니다.


텍스처를 만들거나 스왑 체인에서 해당 텍스처를 사용할 때 D3D11_RESOURCE_MISC_GDI_COMPATIBLE 사용하기 위한 다음 프로그래밍 팁을 고려합니다.


  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 및 D3D11_RESOURCE_MISC_GDI_COMPATIBLE 상호 배타적입니다. 따라서 함께 사용하지 마세요.

  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP 및 D3D11_RESOURCE_MISC_GDI_COMPATIBLE 상호 배타적입니다. 따라서 함께 사용하지 마세요.

  • 텍스처를 출력 병합기 단계의 렌더링 대상으로 바인딩해야 합니다. 예를 들어 D3D11_TEXTURE2D_DESC 구조체의 BindFlags 멤버에서 D3D11_BIND_RENDER_TARGET 플래그를 설정합니다.

  • MIP 맵 수준의 최대 수를 1로 설정해야 합니다. 예를 들어 D3D11_TEXTURE2D_DESC 구조체의 MipLevels 멤버를 1로 설정합니다.

  • 텍스처에 GPU의 읽기 및 쓰기 액세스가 필요하도록 지정해야 합니다. 예를 들어 D3D11_TEXTURE2D_DESC 구조체의 Usage 멤버를 D3D11_USAGE_DEFAULT 설정합니다.


  • 텍스처 형식을 다음 형식 중 하나로 설정해야 합니다.


    • DXGI_FORMAT_B8G8R8A8_UNORM

    • DXGI_FORMAT_B8G8R8A8_TYPELESS

    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

    예를 들어 D3D11_TEXTURE2D_DESC 구조체의 Format 멤버를 이러한 형식 중 하나로 설정합니다.

  • 다중 샘플링에는 D3D11_RESOURCE_MISC_GDI_COMPATIBLE 사용할 수 없습니다. 따라서 DXGI_SAMPLE_DESC 구조체의 Count 멤버를 1로 설정합니다. 그런 다음, D3D11_TEXTURE2D_DESC 구조체의 SampleDesc 멤버를 이 DXGI_SAMPLE_DESC 구조체로 설정합니다.

D3D11_RESOURCE_MISC_SHARED_NTHANDLE
값: 0x800L
공유 리소스를 만들 때 NT HANDLE 값을 사용하도록 설정하려면 이 플래그를 설정합니다. 이 플래그를 사용하도록 설정하면 기존 HANDLE 값의 사용이 더 이상 사용되지 않습니다.

값은 런타임이 공유 리소스에 NT HANDLE 값을 사용하도록 지시하는 새 공유 리소스 유형을 지정합니다. 그런 다음 런타임은 공유 리소스가 지정된 기능 수준의 모든 하드웨어에서 작동하는지 확인해야 합니다.


이 플래그를 설정하지 않으면 런타임은 공유 리소스 매개 변수(즉, 형식, 플래그, 사용량 등)의 유효성을 엄격하게 검사하지 않습니다. 런타임이 공유 리소스 매개 변수의 유효성을 검사하지 않으면 대부분의 Direct3D API 동작이 정의되지 않을 수 있으며 드라이버마다 다를 수 있습니다.

Direct3D 11 이하: 이 값은 Direct3D 11.1까지 지원되지 않습니다.
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
값: 0x1000L
리소스에 보호된 콘텐츠가 포함될 수 있음을 나타내려면 이 플래그를 설정합니다. 따라서 운영 체제는 드라이버와 하드웨어가 콘텐츠 보호를 지원하는 경우에만 리소스를 사용해야 합니다. 드라이버와 하드웨어가 콘텐츠 보호를 지원하지 않고 이 플래그를 사용하여 리소스를 만들려고 하면 리소스 만들기가 실패합니다.

Direct3D 11: 이 값은 Direct3D 11.1까지 지원되지 않습니다.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
값: 0x2000L
운영 체제가 공유 화면에 대한 액세스를 제한함을 나타내려면 이 플래그를 설정합니다. 이 플래그를 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER 플래그와 함께 사용할 수 있으며 공유 화면을 만들 때만 사용할 수 있습니다. 공유 리소스를 만드는 프로세스는 항상 공유 리소스를 열 수 있습니다.

Direct3D 11: 이 값은 Direct3D 11.1까지 지원되지 않습니다.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
값: 0x4000L
드라이버가 공유 화면에 대한 액세스를 제한함을 나타내려면 이 플래그를 설정합니다. 이 플래그는 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE 플래그와 함께 사용할 수 있으며 공유 화면을 만들 때만 사용할 수 있습니다. 공유 리소스를 만드는 프로세스는 항상 공유 리소스를 열 수 있습니다.

Direct3D 11: 이 값은 Direct3D 11.1까지 지원되지 않습니다.
D3D11_RESOURCE_MISC_GUARDED
값: 0x8000L
리소스가 보호됨을 나타내려면 이 플래그를 설정합니다. 이러한 리소스는 IDCompositionSurface::BeginDraw(DirectComposition) 및 ISurfaceImageSourceNative::BeginDraw(Windows 런타임) API에서 반환됩니다. 이러한 API의 경우 업데이트할 표면에 ROI(관심 영역)를 제공합니다. 이 표면은 MRT(여러 렌더링 대상)와 호환되지 않습니다.

보호된 리소스는 이전 API 중 하나와 관련된 지역에 대한 모든 쓰기를 자동으로 제한합니다. 또한 리소스는 다음과 같은 제한 사항으로 ROI에 대한 액세스를 적용합니다.


Direct3D 11: 이 값은 Direct3D 11.1까지 지원되지 않습니다.
D3D11_RESOURCE_MISC_TILE_POOL
값: 0x20000L
리소스가 타일 풀임을 나타내려면 이 플래그를 설정합니다.

Direct3D 11: 이 값은 Direct3D 11.2까지 지원되지 않습니다.
D3D11_RESOURCE_MISC_TILED
값: 0x40000L
리소스가 타일식 리소스임을 나타내려면 이 플래그를 설정합니다.

Direct3D 11: 이 값은 Direct3D 11.2까지 지원되지 않습니다.
D3D11_RESOURCE_MISC_HW_PROTECTED
값: 0x80000L
하드웨어로 보호되도록 리소스를 만들어야 함을 나타내려면 이 플래그를 설정합니다. 하드웨어 콘텐츠 보호가 지원되지 않으면 리소스 만들기가 실패합니다.

이 플래그에는 다음과 같은 제한 사항이 있습니다.


  • 이 플래그는 다음 D3D11_USAGE 값과 함께 사용할 수 없습니다.

    • D3D11_USAGE_DYNAMIC

    • D3D11_USAGE_STAGING



  • 이 플래그는 다음 D3D11_BIND_FLAG 값과 함께 사용할 수 없습니다.

    • D3D11_BIND_VERTEX_BUFFER

    • D3D11_BIND_INDEX_BUFFER



  • CPU 액세스 플래그를 지정할 수 없습니다.


참고  

이 플래그를 사용하여 텍스처를 만들면 기본 할당에 대해 하드웨어 보호가 사용하도록 설정되지 않습니다. 일부 구현에서는 보호를 보장하기 전에 DRM 구성 요소를 먼저 초기화해야 합니다.


 

참고 이 열거형 값은 Windows 10 부터 지원됩니다.
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE
리소스가 표시 가능한 표면 기능을 사용할 수 있도록 합니다 . D3D11_RESOURCE_MISC_SHARED D3D11_RESOURCE_MISC_SHARED_NTHANDLE 함께 D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE 사용해야 합니다.
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
TBD

설명

이 열거형은 D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESC, D3D11_TEXTURE3D_DESC 사용됩니다.

이러한 플래그는 비트 OR로 결합할 수 있습니다.

D3D11_CPU_ACCESS 플래그를 사용하여 리소스를 만들 때는 D3D11_RESOURCE_MISC_FLAG 사용할 수 없습니다.

요구 사항

요구 사항
헤더 d3d11.h

추가 정보

리소스 열거형