D3DHAL_DP2INDEXEDTRIANGLESTRIP 구조체(d3dhal.h)

D3DHAL_DP2COMMAND 구조체의 bCommand 멤버가 D3DDP2OP_INDEXEDTRIANGLESTRIP 설정되고 꼭짓점 인덱스를 사용하여 연결된 삼각형 스트립을 렌더링하는 데 사용되는 경우 하나 이상의 D3DHAL_DP2INDEXEDTRIANGLESTRIP 구조가 D3dDrawPrimitives2 콜백에 의해 명령 버퍼에서 구문 분석됩니다.

구문

typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;

멤버

wV[3]

삼각형 스트립의 첫 번째 꼭짓점의 좌표 데이터를 포함하는 꼭짓점 버퍼의 인덱스를 지정합니다.

이 멤버에는 3개의 인덱스를 포함할 수 있는 충분한 공간이 있지만 이 인덱스 배열은 (wPrimitiveCount + 2) 요소를 사용하여 변수 크기의 배열로 처리되어야 합니다. (wPrimitiveCount 는 D3DHAL_DP2COMMAND 구조체의 멤버입니다.)

설명

D3dDrawPrimitives2 는 명령 버퍼에서 (wPrimitiveCount+2) 인덱스를 처리해야 하며, 실제로 wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLESTRIP 구조체를 처리해야 합니다.

삼각형 스트립의 삼각형 가장자리는 다음 순서로 렌더링됩니다. (wV[0], wV[1], wV[2]), (wV[1], wV[3], wV[2]), (wV[2], wV[3], wV[4]), (wV[3], wV[5], wV[4]),...

그러나 삼각형 스트립의 마지막 삼각형의 경우 wPrimitiveCountt가 홀수이고 짝수일 때 가장자리가 서로 다른 순서로 렌더링됩니다.

  • wPrimitiveCount가 홀수이면 마지막 삼각형의 가장자리가 다음 순서로 렌더링됩니다(wV[wPrimitiveCount - 1], wV[wPrimitiveCount], wV[wPrimitiveCount+ 1]).
  • wPrimitiveCount가 짝수이면 마지막 삼각형의 가장자리가 다음 순서로 렌더링됩니다( wV[wPrimitiveCount- 1], wV[wPrimitiveCount+1], wV[wPrimitiveCount).
D3DHAL_DP2STARTVERTEX 구조체는 명령 버퍼의 명령을 바로 따릅니다. 꼭짓점 버퍼 인덱스는 D3DHAL_DRAWPRIMITIVES2DATA 구조체의 dwVertexOffset 멤버에 지정된 꼭짓점 버퍼 오프셋과 D3DHAL_DP2STARTVERTEX 구조체의 wVStart 멤버에서 가져온 기본 오프셋을 기준으로 합니다.

다음 그림에서는 D3DDP2OP_INDEXEDTRIANGLESTRIP 명령, 0의 D3DHAL_DP2STARTVERTEX 오프셋 및 D3DHAL_DP2INDEXEDTRIANGLESTRIP 구조체의 논리적 목록을 포함하는 샘플 명령 버퍼의 일부를 보여 줍니다. 드라이버는 꼭짓점 버퍼에서 5개의 꼭짓점을 처리하여 (v[1], v[3], v[6]), (v[3], v[4], v[6]), (v[6], v[4], v[5])로 정의된 세 개의 삼각형 스트립을 렌더링해야 합니다.

D3DDP2OP_INDEXEDTRIANGLESTRIP 명령, 0의 D3DHAL_DP2STARTVERTEX 오프셋 및 D3DHAL_DP2INDEXEDTRIANGLESTRIP 구조체의 논리적 목록이 있는 버퍼를 보여 주는 그림

요구 사항

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

추가 정보

D3DDP2OP_INDEXEDTRIANGLESTRIP

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2