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 때 wV1 과 wV2 사이의 삼각형 가장자리를 렌더링해야 합니다. |
D3DTRIFLAG_EDGEENABLE2 | 채우기 모드가 D3DFILL_WIREFRAME 경우 드라이버는 wV2 와 wV3 사이에 삼각형 가장자리를 렌더링해야 합니다. |
D3DTRIFLAG_EDGEENABLE3 | 드라이버는 채우기 모드가 D3DFILL_WIREFRAME 때 wV3 과 wV1 사이의 삼각형 가장자리를 렌더링해야 합니다. |
D3DTRIFLAG_EDGEENABLETRIANGLE | 드라이버는 채우기 모드가 D3DFILL_WIREFRAME 때 모든 삼각형 가장자리를 렌더링해야 합니다. |
설명
D3dDrawPrimitives2 는 wPrimitiveCount * 명령 버퍼에서 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_INDEXEDTRIANGLELIST2 명령, D3DHAL_DP2STARTVERTEX 오프셋 및 두 개의 D3DHAL_DP2INDEXEDTRIANGLELIST 구조를 포함하는 샘플 명령 버퍼의 일부를 보여 줍니다. 드라이버는 꼭짓점 버퍼에서 6개의 꼭짓점을 처리하여 (v[5], v[6], v[7]), (v[2], v[3], v[4])로 정의된 두 개의 삼각형을 렌더링해야 합니다.요구 사항
요구 사항 | 값 |
---|---|
헤더 | d3dhal.h(D3dhal.h 포함) |
추가 정보
D3DDP2OP_INDEXEDTRIANGLELIST