Поделиться через


структура D3DHAL_DP2INDEXEDTRIANGLEFAN (d3dhal.h)

D3DHAL_DP2INDEXEDTRIANGLEFAN анализируется из буфера команд с помощью обратного вызова D3dDrawPrimitives2, когда член bCommandструктуры D3DHAL_DP2COMMAND имеет значение D3DDP2OP_INDEXEDTRIANGLEFAN и используется для отрисовки последовательности связанных треугольников с помощью индексов вершин. Все треугольники имеют общую вершину.

Синтаксис

typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLEFAN, *LPD3DHAL_DP2INDEXEDTRIANGLEFAN;

Члены

wV[3]

Указывает индексы в буфере вершин, из которых драйвер получает координатные данные для вершин, составляющих вентилятор треугольника.

Хотя в этом элементе достаточно места для трех индексов, этот массив индексов следует рассматривать как массив переменных размеров с элементами (wPrimitiveCount + 2). (wPrimitiveCount является членом структуры D3DHAL_DP2COMMAND.)

Комментарии

D3dDrawPrimitives2 должен обрабатывать (wPrimitiveCount+2) индексы из буфера команд, фактически обрабатывая структуры wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLEFAN. Значение wPrimitiveCount указывается в структуре D3DHAL_DP2COMMAND.

Драйвер должен обработать в общей сложности (wPrimitiveCount + 2) вершин из буфера вершин, три вершины на треугольник. Последовательность отображаемых треугольников: (wV[1], wV[2], wV[0]), (wV[2], wV[3], wV[0]), (wV[3], wV[4], wV[0]), ..., (wV[wPrimitiveCount], wV[wPrimitiveCount]+1], wV[0]). Обратите внимание, что все треугольники имеют общую вершину, указанную в wV[0].

Структура D3DHAL_DP2STARTVERTEX сразу же следует за командой в буфере команд. Индексы буфера вершин относительно смещения буфера вершин, заданного членом dwVertexOffset структуры D3DHAL_DRAWPRIMITIVES2DATA , а также базовое смещение, полученное из элемента wVStart структуры D3DHAL_DP2STARTVERTEX.

На следующем рисунке показана часть примера буфера команд, содержащего команду D3DDP2OP_INDEXEDTRIANGLEFAN, смещение D3DHAL_DP2STARTVERTEX и логический список D3DHAL_DP2INDEXEDTRIANGLEFAN структур. Драйвер должен обработать пять вершин из буфера вершин, отрисовав вентилятор с тремя треугольниками, определенными (v[4], v[5], v[7]), (v[5], v[6], v[7]), (v[6], v[9], v[7]).

Рисунок, показывающий буфер с командой D3DDP2OP_INDEXEDTRIANGLEFAN, смещением D3DHAL_DP2STARTVERTEX и списком D3DHAL_DP2INDEXEDTRIANGLEFAN структур

Требования

Требование Значение
Заголовок d3dhal.h (включая D3dhal.h)

См. также раздел

D3DDP2OP_INDEXEDTRIANGLEFAN

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2