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

Одна или несколько D3DHAL_DP2INDEXEDTRIANGLELIST структур анализируются из буфера команд с помощью обратного вызова D3dDrawPrimitives2, если член bCommandD3DHAL_DP2COMMAND структуры имеет значение D3DDP2OP_INDEXEDTRIANGLELIST, и используются для отрисовки последовательности несвязанных треугольников с помощью индексов вершин.

Синтаксис

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

Члены

wV1

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

wV2

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

wV3

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

wFlags

Задает флаги, описывающие, как драйвер должен отображать треугольник. Этот элемент может быть побитовой или следующих значений:

Пометить Значение
D3DTRIFLAG_EDGEENABLE1 Драйвер должен отобразить границу треугольника между wV1 и wV2 , когда режим заполнения D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLE2 Драйвер должен отобразить границу треугольника между wV2 и wV3 , когда режим заполнения D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLE3 Драйвер должен отобразить границу треугольника между wV3 и wV1 , когда режим заполнения D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLETRIANGLE Драйвер должен отображать все края треугольников, когда режим заполнения D3DFILL_WIREFRAME.

Комментарии

D3dDrawPrimitives2 должен обрабатывать индексы wPrimitiveCount * 3 из буфера команд, обрабатывая структуры wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST. Значение wPrimitiveCount указывается в структуре D3DHAL_DP2COMMAND.

Драйвер должен обработать в общей сложности wPrimitiveCount*3 вершин из буфера вершин, три вершины на треугольник, для текущей команды. Последовательность треугольников отрисовывается так: (wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁, wV3₁), ..., (wV1n, wV2n, wV3n), где n равно (wPrimitiveCount-1). Драйвер должен вычислить расположения вершин на основе текущей команды следующим образом:

  • Когда команда D3DDP2OP_INDEXEDTRIANGLELIST, индексы в буфере вершин находятся относительно смещения буфера вершин, заданного элементом dwVertexOffset структуры D3DHAL_DRAWPRIMITIVES2DATA .

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

На следующем рисунке показана часть примера буфера команд, содержащего команду D3DDP2OP_INDEXEDTRIANGLELIST и две D3DHAL_DP2INDEXEDTRIANGLELIST структуры. Драйвер должен нарисовать два треугольника âˆ' со всеми ребрами, включенными âˆ', используя следующие шесть вершин из буфера вершин: (v[3], v[4], v[5]), (v[0], v[1], v[2]).

Рисунок, показывающий буфер команд с командой D3DDP2OP_INDEXEDTRIANGLELIST и двумя D3DHAL_DP2INDEXEDTRIANGLELIST структурами Аналогичным образом на следующем рисунке показана часть примера буфера команд, содержащая команду D3DDP2OP_INDEXEDTRIANGLELIST2, смещение D3DHAL_DP2STARTVERTEX и две D3DHAL_DP2INDEXEDTRIANGLELIST структуры. Драйвер должен обработать шесть вершин из буфера вершин, отрисовав два треугольника, определенные (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