PFND3DDDI_SETSTREAMSOURCEFREQ 콜백 함수(d3dumddi.h)

SetStreamSourceFreq 함수는 꼭짓점 버퍼에 바인딩된 스트림 소스의 빈도를 설정합니다.

구문

PFND3DDDI_SETSTREAMSOURCEFREQ Pfnd3dddiSetstreamsourcefreq;

HRESULT Pfnd3dddiSetstreamsourcefreq(
  HANDLE hDevice,
  const D3DDDIARG_SETSTREAMSOURCEFREQ *unnamedParam2
)
{...}

매개 변수

hDevice

디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

unnamedParam2

pData [in]

스트림 원본의 빈도를 설정하는 방법을 지정하는 D3DDDIARG_SETSTREAMSOURCEFREQ 구조체에 대한 포인터입니다.

반환 값

꼭짓점 스트림 원본의 부분에 대한 빈도 수분이 성공적으로 설정되지 않은 경우 SetStreamSourceFreq는 S_OK 또는 적절한 오류 결과를 반환합니다.

설명

꼭짓점 셰이더 버전 3.0 이상을 지원하는 디바이스에 대한 사용자 모드 표시 드라이버는 꼭짓점 스트림 주파수 나누기를 구현해야 합니다. 버전 2.0 및 이전 버전의 꼭짓점 셰이더(고정 함수 포함)의 경우 꼭짓점 셰이더는 각 꼭짓점마다 한 번 호출됩니다. 각 호출에 대해 입력 꼭짓점 레지스터는 꼭짓점 스트림의 고유한 꼭짓점 요소로 초기화됩니다. 그러나 드라이버가 꼭짓점 스트림 주파수 나누기를 사용하는 경우 꼭짓점 셰이더(3.0 이상)를 호출하여 적용 가능한 입력 레지스터를 덜 빈번한 속도로 초기화할 수 있습니다.

스트림의 빈도 수분이 2로 설정된 후 드라이버는 스트림에서 데이터를 가져와서 2개의 꼭짓점마다 해당 입력 꼭짓점 레지스터에 전달해야 합니다. 이 수수는 스트림의 각 요소에 영향을 줍니다.

드라이버는 빈도 제수를 사용하여 다음 수식에 따라 꼭짓점 오프셋을 꼭짓점 버퍼로 계산합니다.

VertexOffset = ((VertexIndex / Divider) * StreamStride) + StreamOffset

사용되는 각 꼭짓점 스트림에 대해 드라이버가 드라이버의 DrawPrimitive 함수를 호출하는 동안 시작 꼭짓점 값을 수신하는 경우 드라이버는 이 시작 꼭짓점 값을 빈도 제수로 나누고 수식의 결과를 계산합니다. 이 시작 꼭짓점 값은 D3DDDIARG_DRAWPRIMITIVE 구조체의 VStart 멤버에 제공됩니다. 다음 수식에는 start-vertex 값이 포함됩니다.

VertexOffset = (StartVertex / Divider) + 
       ((VertexIndex / Divider) * StreamStride) + StreamOffset 

앞의 수식은 정수 나누기를 사용합니다.

드라이버는 인덱싱된 기본 형식에 대해 또는 드라이버가 버전 3.0보다 이전의 꼭짓점 셰이더 모델만 지원하는 경우(고정 함수 포함) 스트림의 주파수 수분 설정을 무시합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDIARG_DRAWPRIMITIVE

D3DDDIARG_SETSTREAMSOURCEFREQ

D3DDDI_DEVICEFUNCS

DrawPrimitive