다음을 통해 공유


ID3D11Device::CreateGeometryShaderWithStreamOutput 메서드(d3d11.h)

스트리밍 출력 버퍼에 쓸 수 있는 기하 도형 셰이더를 만듭니다.

구문

HRESULT CreateGeometryShaderWithStreamOutput(
  [in]            const void                       *pShaderBytecode,
  [in]            SIZE_T                           BytecodeLength,
  [in, optional]  const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
  [in]            UINT                             NumEntries,
  [in, optional]  const UINT                       *pBufferStrides,
  [in]            UINT                             NumStrides,
  [in]            UINT                             RasterizedStream,
  [in, optional]  ID3D11ClassLinkage               *pClassLinkage,
  [out, optional] ID3D11GeometryShader             **ppGeometryShader
);

매개 변수

[in] pShaderBytecode

형식: const void*

표준 기하 도형 셰이더와 스트림 출력을 위해 컴파일된 기하 도형 셰이더에 대한 포인터입니다. 이 포인터를 가져오는 방법에 대한 자세한 내용은 컴파일된 셰이더에 대한 포인터 가져오기를 참조하세요.

기하 도형 셰이더를 사용하지 않고 스트림 출력을 만들려면 이전 단계의 출력 서명에 대한 포인터를 전달합니다. 이 출력 서명을 가져오려면 D3DGetOutputSignatureBlob 컴파일러 함수를 호출합니다. 이전 단계(예: 꼭짓점 셰이더 단계 또는 도메인 셰이더 단계)에 대해 컴파일된 셰이더에 대한 포인터 전달할 수도 있습니다. 이 컴파일된 셰이더는 데이터에 대한 출력 서명을 제공합니다.

[in] BytecodeLength

형식: SIZE_T

컴파일된 기하 도형 셰이더의 크기입니다.

[in, optional] pSODeclaration

형식: const D3D11_SO_DECLARATION_ENTRY*

D3D11_SO_DECLARATION_ENTRY 배열에 대한 포인터입니다. NumEntries > 0인 경우 NULL일 수 없습니다.

[in] NumEntries

형식: UINT

스트림 출력 선언의 항목 수( 범위는 0에서 D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT )입니다.

[in, optional] pBufferStrides

형식: const UINT*

버퍼 보폭의 배열입니다. 각 보폭은 해당 버퍼에 대한 요소의 크기입니다.

[in] NumStrides

형식: UINT

pBufferStrides(0에서 D3D11_SO_BUFFER_SLOT_COUNT 범위)의 보폭(또는 버퍼) 수입니다.

[in] RasterizedStream

형식: UINT

래스터라이저 단계로 보낼 스트림의 인덱스 번호입니다(0에서 D3D11_SO_STREAM_COUNT - 1까지의 범위). 래스터화할 스트림이 없으면 D3D11_SO_NO_RASTERIZED_STREAM 로 설정합니다.

[in, optional] pClassLinkage

형식: ID3D11ClassLinkage*

클래스 연결 인터페이스에 대한 포인터입니다( ID3D11ClassLinkage 참조). 값은 NULL일 수 있습니다.

[out, optional] ppGeometryShader

형식: ID3D11GeometryShader**

생성된 기하 도형 셰이더를 나타내는 ID3D11GeometryShader 인터페이스에 대한 포인터의 주소입니다. 다른 매개 변수의 유효성을 검사하려면 NULL 로 설정합니다. 유효성 검사가 통과하면 메서드는 S_OK 대신 S_FALSE 반환합니다.

반환 값

형식: HRESULT

이 메서드는 Direct3D 11 반환 코드 중 하나를 반환합니다.

설명

CreateGeometryShaderWithStreamOutput 사용에 대한 자세한 내용은 Stream 출력을 사용하여 Geometry-Shader 개체 만들기를 참조하세요.

Windows 8 시작하는 Direct3D 11.1 런타임은 CreateGeometryShaderWithStreamOutput에 대해 다음과 같은 새로운 기능을 제공합니다.

다음 셰이더 모델 5.0 지침은 Direct3D 11.0 런타임에서 픽셀 셰이더 및 컴퓨팅 셰이더에만 사용할 수 있습니다. Direct3D 11.1 런타임의 경우 모든 셰이더 단계에서 UAV(순서가 지정되지 않은 액세스 뷰)를 사용할 수 있으므로 모든 셰이더 단계에서 이러한 지침을 사용할 수 있습니다.

따라서 기하 도형 셰이더에서 다음 셰이더 모델 5.0 지침을 사용하는 경우 컴파일된 기하 도형 셰이더를 pShaderBytecode에 성공적으로 전달할 수 있습니다. 즉, CreateGeometryShaderWithStreamOutput 에 대한 호출이 성공합니다.

모든 셰이더 단계에서 UAV를 지원하지 않는 디바이스(모든 셰이더 단계에서 UAV를 지원하기 위해 구현되지 않은 기존 드라이버 포함)에서 다음 지침을 사용하는 pShaderBytecode 에 컴파일된 셰이더를 전달하면 CreateGeometryShaderWithStreamOutput 이 실패합니다. 셰이더가 하드웨어에서 지원하는 UAV 슬롯 집합 이외의 UAV 슬롯을 사용하려고 하면 CreateGeometryShaderWithStreamOutput도 실패합니다.

Windows Phone 8: 이 API가 지원됩니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d11.h
라이브러리 D3D11.lib

추가 정보

ID3D11Device