D3DHAL_DP2INDEXEDTRIANGLELIST 구조체(d3dhal.h)

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

구문

typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
  WORD wV1;
  WORD wV2;
  WORD wV3;
  WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;

멤버

wV1

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

wV2

삼각형의 두 번째 꼭짓점의 좌표 데이터를 포함하는 꼭짓점 버퍼 위치에 대한 인덱스를 지정합니다.

wV3

삼각형의 세 번째 꼭짓점의 좌표 데이터를 포함하는 꼭짓점 버퍼 위치에 대한 인덱스를 지정합니다.

wFlags

드라이버가 삼각형을 렌더링하는 방법을 설명하는 플래그를 지정합니다. 이 멤버는 다음 값 중 비트 OR일 수 있습니다.

플래그 의미
D3DTRIFLAG_EDGEENABLE1 드라이버는 채우기 모드가 D3DFILL_WIREFRAME 때 wV1wV2 사이의 삼각형 가장자리를 렌더링해야 합니다.
D3DTRIFLAG_EDGEENABLE2 채우기 모드가 D3DFILL_WIREFRAME 경우 드라이버는 wV2wV3 사이에 삼각형 가장자리를 렌더링해야 합니다.
D3DTRIFLAG_EDGEENABLE3 드라이버는 채우기 모드가 D3DFILL_WIREFRAME 때 wV3wV1 사이의 삼각형 가장자리를 렌더링해야 합니다.
D3DTRIFLAG_EDGEENABLETRIANGLE 드라이버는 채우기 모드가 D3DFILL_WIREFRAME 때 모든 삼각형 가장자리를 렌더링해야 합니다.

설명

D3dDrawPrimitives2wPrimitiveCount * 명령 버퍼에서 3개의 인덱스를 처리하고 wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST 구조를 처리해야 합니다. wPrimitiveCount 값은 D3DHAL_DP2COMMAND 구조체에 지정됩니다.

드라이버는 현재 명령에 대해 꼭짓점 버퍼에서 총 wPrimitiveCount*3 꼭짓점(삼각형당 세 개의 꼭짓점)을 처리해야 합니다. 렌더링된 삼각형 시퀀스는 (wV1, wV2, wV3), (wV1, wV2, wV3), ..., (wV1 n, wV2n, wV3n), 여기서 n은 같음(wPrimitiveCount- 1)입니다. 드라이버는 다음과 같이 현재 명령을 기반으로 꼭짓점 위치를 계산해야 합니다.

  • 명령이 D3DDP2OP_INDEXEDTRIANGLELIST 경우 꼭짓점 버퍼의 인덱스는 D3DHAL_DRAWPRIMITIVES2DATA 구조체의 dwVertexOffset 멤버에 지정된 꼭짓점 버퍼 오프셋을 기준으로 합니다 .

  • 명령이 D3DDP2OP_INDEXEDTRIANGLELIST2 경우 명령 버 퍼의 명령 바로 뒤에 D3DHAL_DP2STARTVERTEX 구조가 있습니다. 꼭짓점 버퍼에 대한 인덱스는 dwVertexOffset에 지정된 꼭짓점 버퍼 오프셋과 D3DHAL_DP2STARTVERTEX 구조체의 wVStart 멤버에서 가져온 기본 오프셋을 기준으로 합니다.

다음 그림에서는 D3DDP2OP_INDEXEDTRIANGLELIST 명령과 두 개의 D3DHAL_DP2INDEXEDTRIANGLELIST 구조를 포함하는 샘플 명령 버퍼의 일부를 보여 줍니다. 드라이버는 꼭짓점 버퍼(v[3], v[4], v[5]), (v[0], v[1], v[2])의 6가지 꼭짓점을 사용하여 모든 가장자리가 활성화된 두 개의 삼각형을 그려야 합니다.

D3DDP2OP_INDEXEDTRIANGLELIST 명령과 두 개의 D3DHAL_DP2INDEXEDTRIANGLELIST 구조가 있는 명령 버퍼를 보여 주는 그림 마찬가지로 다음 그림에서는 D3DDP2OP_INDEXEDTRIANGLELIST2 명령, D3DHAL_DP2STARTVERTEX 오프셋 및 두 개의 D3DHAL_DP2INDEXEDTRIANGLELIST 구조를 포함하는 샘플 명령 버퍼의 일부를 보여 줍니다. 드라이버는 꼭짓점 버퍼에서 6개의 꼭짓점을 처리하여 (v[5], v[6], v[7]), (v[2], v[3], v[4])로 정의된 두 개의 삼각형을 렌더링해야 합니다. D3DDP2OP_INDEXEDTRIANGLELIST2 명령, D3DHAL_DP2STARTVERTEX 오프셋 및 두 개의 D3DHAL_DP2INDEXEDTRIANGLELIST 구조체가 있는 버퍼를 보여 주는 그림

요구 사항

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

추가 정보

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2