D3DHAL_DP2VERTEXSHADER 구조체(d3dhal.h)

DirectX 8.0 이상 버전만 해당합니다.

D3DHAL_DP2VERTEXSHADER 구조체는 D3dDrawPrimitives2에서 받은 opcode(D3DDP2OP_SETVERTEXSHADER 또는 D3DDP2OP_DELETEVERTEXSHADER)에 따라 현재 꼭짓점 셰이더를 설정하거나 꼭짓점 셰이더를 삭제합니다.

구문

typedef struct _D3DHAL_DP2VERTEXSHADER {
  DWORD dwHandle;
} D3DHAL_DP2VERTEXSHADER;

멤버

dwHandle

디스플레이에 대한 핸들입니다.

설명

모든 DirectX 8.0 수준 드라이버는 드라이버가 프로그래밍 가능한 꼭짓점 처리를 지원하지 않더라도 전송되므로 D3DDP2OP_SETVERTEXSHADER 토큰을 지원해야 합니다. 그러나 이 경우 셰이더 핸들은 항상 꼭짓점 데이터의 고정 함수 처리를 나타내는 FVF 코드입니다. 드라이버는 dwHandle 멤버에 저장된 FVF 코드를 스트림 0의 꼭짓점 데이터 형식으로 사용해야 합니다. 프로그래밍 가능한 꼭짓점 처리를 지원하는 드라이버는 핸들을 검사하여 이전에 D3DDP2OP_CREATEVERTEXSHADER 또는 FVF 코드로 만든 셰이더를 참조하는지 확인하고 적절한 작업을 수행해야 합니다.

픽셀 및 꼭짓점 셰이더는 직교입니다. 따라서 레거시 FVF 코드가 현재 꼭짓점 셰이더로 선택된 경우 레거시 픽셀 처리를 의미하지는 않습니다. 픽셀 처리를 하위 프로그래밍 가능 모드로 다시 설정하려면 현재 픽셀 셰이더도 0으로 설정해야 합니다. 꼭짓점 셰이더가 FVF 코드로 설정된 경우 픽셀 처리 상태가 아닌 고정 함수 모드로 꼭짓점 처리 상태만 다시 설정하려면 드라이버에서 주의해야 합니다.

고정 함수 꼭짓점 처리에서 프로그래밍 가능한 꼭짓점 처리로 전환할 때 레거시 렌더링 상태 및 행렬의 값은 유지되어야 합니다. 프로그래밍 가능한 함수에서 고정 함수 꼭짓점 처리로 전환이 발생하는 경우(드라이버가 셰이더 핸들로 FVF를 사용하여 D3DDP2OP_SETVERTEXSHADER 수신) 보존된 상태를 복원해야 합니다.

프로그래밍 가능한 셰이더 간에 전환할 때 해당 셰이더 정의에 지정된 값이 있는 상수 레지스터를 해당 값으로 설정해야 합니다. 다른 모든 상수 레지스터의 값은 변경되지 않은 상태로 유지되어야 합니다.

D3DDP2OP_SETVERTEXSHADERDECL 작업의 경우 런타임은 dwHandle 멤버에 레거시 FVF 코드 또는 DirectX 9.0 선언 핸들을 지정합니다. 런타임은 핸들의 비트 0을 설정하여 DirectX 9.0 선언 핸들을 나타냅니다. D3DDP2OP_SETVERTEXSHADERFUNC 작업의 경우 런타임은 dwHandle 을 0으로 설정하여 고정 함수 파이프라인을 나타냅니다.

요구 사항

요구 사항
헤더 d3dhal.h(D3dhal.h 포함)

추가 정보

D3DDP2OP_CREATEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADERDECL

D3DDP2OP_DELETEVERTEXSHADERFUNC

D3DDP2OP_SETSTREAMSOURCE

D3DDP2OP_SETSTREAMSOURCEUM

D3DDP2OP_SETVERTEXSHADER

D3DDP2OP_SETVERTEXSHADERDECL

D3DDP2OP_SETVERTEXSHADERFUNC

D3DHAL_DP2CREATEVERTEXSHADER

D3DHAL_DP2SETVERTEXSHADERCONST

D3dDrawPrimitives2