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

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

Синтаксис

typedef struct _D3DHAL_DP2INDEXEDLINELIST {
  WORD wV1;
  WORD wV2;
} D3DHAL_DP2INDEXEDLINELIST, *LPD3DHAL_DP2INDEXEDLINELIST;

Члены

wV1

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

wV2

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

Комментарии

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

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

  • Если команда D3DDP2OP_INDEXEDLINELIST, индексы буфера вершин находятся относительно смещения буфера вершин, заданного членом dwVertexOffsetструктуры D3DHAL_DRAWPRIMITIVES2DATA .
  • Когда команда D3DDP2OP_INDEXEDLINELIST2, сразу за ней следует структура D3DHAL_DP2STARTVERTEX , предшествуя структурам D3DHAL_DP2INDEXEDLINELIST в буфере команд. Индексы буфера вершин относительно смещения буфера вершин, заданного параметром dwVertexOffset , а также базового смещения, полученного из элемента wVStart структуры D3DHAL_DP2STARTVERTEX.
На следующем рисунке показана часть примера буфера команд, содержащего команду D3DDP2OP_INDEXEDLINELIST и две D3DHAL_DP2INDEXEDLINELIST структуры. Драйвер должен нарисовать две линии, используя следующие четыре вершины из буфера вершин: (v[0], v[4]), (v[5], v[6]). Рисунок, показывающий буфер команд с командой D3DDP2OP_INDEXEDLINELIST и двумя D3DHAL_DP2INDEXEDLINELIST структурами Аналогичным образом на следующем рисунке показана часть примера буфера команд, содержащая команду D3DDP2OP_INDEXEDLINELIST2, D3DHAL_DP2STARTVERTEX смещение и две D3DHAL_DP2INDEXEDLINELIST структуры. Драйвер должен обработать четыре вершины из буфера вершин, отрисовав две линии, определенные (v[3], v[7]), (v[8], v[9]). Рисунок, показывающий буфер команд с командой D3DDP2OP_INDEXEDLINELIST2, смещением D3DHAL_DP2STARTVERTEX и двумя D3DHAL_DP2INDEXEDLINELIST структурами

Требования

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

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

D3DDP2OP_INDEXEDLINELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2