ID3DX11ThreadPump 인터페이스

참고

D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8에서 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.

스레드 펌프는 작업을 비동기적으로 실행합니다. D3DX11CreateThreadPump를 호출하여 생성됩니다. D3DX11CreateTextureFromFile 및 D3DX11CompileFromFile과 같은 선택적 스레드 펌프를 매개 변수로 사용하는 여러 API가 있습니다. 스레드 펌프 인터페이스를 이러한 API에 전달하면 함수는 별도의 스레드에서 비동기적으로 실행됩니다. 특히 다중 프로세서 컴퓨터에서 스레드 펌프는 눈에 띄는 성능 저하 없이 리소스를 로드하고 데이터를 처리할 수 있습니다.

멤버

ID3DX11ThreadPump 인터페이스는 IUnknown 인터페이스에서 상속됩니다. ID3DX11ThreadPump 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

ID3DX11ThreadPump 인터페이스에는 이러한 메서드가 있습니다.

메서드 설명
AddWorkItem 참고: D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8에서 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.
스레드 펌프에 작업 항목을 추가합니다.
GetQueueStatus 참고: D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8에서 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.
스레드 펌프 내의 세 큐 각각에 있는 항목 수를 가져옵니다.
GetWorkItemCount 참고: D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8에서 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.
스레드 펌프의 작업 항목 수를 가져옵니다.
ProcessDeviceWorkItems 참고: D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8에서 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.
로드 및 처리를 완료한 후 작업 항목을 디바이스로 설정합니다.
PurgeAllItems 참고: D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8에서 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.
스레드 펌프에서 모든 작업 항목을 지웁니다.
WaitForAllItems 참고: D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8에서 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.
스레드 펌프의 모든 작업 항목이 완료되기를 기다립니다.

설명

스레드 펌프 사용

스레드 펌프는 다음 3단계 프로세스를 사용하여 데이터를 로드하고 처리합니다.

  1. 데이터 로더를 사용하여 데이터를 로드 및 압축 해제합니다. 데이터 로더 개체에는 스레드 펌프가 데이터를 로드하고 압축을 풀 때 내부적으로 호출하는 세 가지 메서드인 ID3DX11DataLoader::Load, ID3DX11DataLoader::D ecompressID3DX11DataLoader::D estroy가 있습니다. 이러한 세 API의 특정 기능은 로드 및 압축 해제되는 데이터 유형에 따라 다릅니다. 데이터 로더 인터페이스도 상속할 수 있으며 자체 사용자 지정 형식으로 정의된 데이터 파일을 로드하는 경우 해당 API를 변경할 수 있습니다.
  2. 데이터 프로세서를 사용하여 데이터를 처리합니다. 데이터 프로세서 개체에는 스레드 펌프가 데이터를 처리하는 동안 내부적으로 호출하는 세 가지 메서드인 ID3DX11DataProcessor::P rocess, ID3DX11DataProcessor::CreateDeviceObjectID3DX11DataProcessor::D estroy가 있습니다. 데이터 처리 방법은 데이터 형식에 따라 달라집니다. 예를 들어 데이터가 JPEG로 저장된 텍스처인 경우 ID3DX11DataProcessor::P rocess 는 JPEG 압축 해제를 수행하여 이미지의 원시 이미지 비트를 가져옵니다. 데이터가 셰이더인 경우 ID3DX11DataProcessor::P rocess 는 HLSL을 바이트 코드로 컴파일합니다. 데이터가 처리되면 해당 데이터에 대한 디바이스 개체가 만들어지고( ID3DX11DataProcessor::CreateDeviceObject 사용) 개체가 디바이스 개체 큐에 추가됩니다. 또한 데이터 프로세서 인터페이스를 상속할 수 있으며 자체 사용자 지정 형식으로 정의된 데이터 파일을 처리하는 경우 해당 API를 변경할 수 있습니다.
  3. 디바이스 개체를 디바이스에 바인딩합니다. 이 작업은 애플리케이션이 ID3DX11ThreadPump::P rocessDeviceWorkItems를 호출할 때 수행되며, 디바이스 개체 큐에 있는 지정된 수의 개체를 디바이스에 바인딩합니다.

스레드 펌프는 D3DX11CreateTextureFromFile 및 D3DX11CompileFromFile과 같은 매개 변수로 스레드 펌프를 사용하는 API를 호출하거나 ID3DX11ThreadPump::AddWorkItem을 호출하는 두 가지 방법 중 하나로 데이터를 로드하는 데 사용할 수 있습니다. 스레드 펌프를 사용하는 API의 경우 데이터 로더 및 데이터 프로세서가 내부적으로 만들어집니다. AddWorkItem의 경우 데이터 로더 및 데이터 프로세서를 미리 만든 다음 AddWorkItem에 전달해야 합니다. D3DX11은 일반적인 데이터 형식을 로드하고 처리하는 기능이 있는 데이터 로더 및 데이터 프로세서를 만들기 위한 API 집합을 제공합니다. 사용자 지정 데이터 형식의 경우 데이터 로더 및 데이터 프로세서 인터페이스를 상속해야 하며 해당 메서드를 다시 정의해야 합니다.

스레드 펌프 개체는 상당한 양의 리소스를 차지하므로 일반적으로 애플리케이션당 하나만 만들어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 R2 [데스크톱 앱만 해당]
헤더
D3DX11core.h
라이브러리
D3DX11.lib

추가 정보

D3DX 인터페이스