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


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

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

Синтаксис

typedef struct _D3DHAL_DP2RENDERSTATE {
  D3DRENDERSTATETYPE RenderState;
  union {
    D3DVALUE dvState;
    DWORD    dwState;
  };
} D3DHAL_DP2RENDERSTATE;

Члены

RenderState

Указывает D3DRENDERSTATETYPE перечислимый тип, указывающий обновляемое состояние отрисовки. Состояния отрисовки, запрашиваемые на уровне приложения, описаны в документации по пакету SDK для DirectX. Состояния отрисовки, которые используются исключительно драйверами, описаны в D3DRENDERSTATETYPE.

dvState

Задает значение, с которым драйвер должен обновить состояние отрисовки, определяемое элементом RenderState . Этот элемент действителен, если для RenderState требуется D3DVALUE.

dwState

Указывает значение, на которое драйвер должен обновить состояние отрисовки, определенное RenderState . Этот член действителен, если для RenderState требуется DWORD.

Комментарии

D3dDrawPrimitives2 должен обрабатывать wStateCount D3DHAL_DP2RENDERSTATE структуры из буфера команд. Значение wStateCount указывается в структуре D3DHAL_DP2COMMAND.

Для каждой структуры D3DHAL_DP2RENDERSTATE D3dDrawPrimitives2 должен обновить частное состояние отрисовки драйвера и массив состояний отрисовки, на который указывает член lpdwRStatesD3DHAL_DRAWPRIMITIVES2DATA . Элемент, обновляемый в общедоступном массиве состояний отрисовки, — lpdwRStates[RenderState].

На следующем рисунке показана часть примера буфера команд, содержащая команду D3DDP2OP_RENDERSTATE и две D3DHAL_DP2RENDERSTATE структуры. Драйвер должен обновить lpdwRStates[D3DRENDERSTATE_FILLMODE] для D3DFILL_SOLID и lpdwRStates[D3DRENDERSTATE_SHADEMODE] для D3DSHADE_GOURAUD. Драйвер также должен соответствующим образом обновить свое частное состояние.

Рисунок, показывающий буфер команд с командой D3DDP2OP_RENDERSTATE и двумя D3DHAL_DP2RENDERSTATE структурами Хотя состояния отрисовки, значения которых являются логическими по типу, задокументированы как принимаюющие только TRUE(1) и FALSE(0), среда выполнения не проверяет это и принимает любое значение поднулевого значения как true. Пример драйвера интерпретирует это строго и интерпретирует значения, отличные от 1, как TRUE. Однако, так как среда выполнения не предлагает проверку, драйвер должен интерпретировать 0 как FALSE , а любое другое значение поднуля — как TRUE. В этом отношении драйвер не должен имитировать поведение предоставленного примера драйвера.

Требования

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

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

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2