структура 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. Драйвер также должен соответствующим образом обновить свое частное состояние.
Хотя состояния отрисовки, значения которых являются логическими по типу, задокументированы как принимаюющие только TRUE(1) и FALSE(0), среда выполнения не проверяет это и принимает любое значение поднулевого значения как true. Пример драйвера интерпретирует это строго и интерпретирует значения, отличные от 1, как TRUE. Однако, так как среда выполнения не предлагает проверку, драйвер должен интерпретировать 0 как FALSE , а любое другое значение поднуля — как TRUE. В этом отношении драйвер не должен имитировать поведение предоставленного примера драйвера.Требования
Требование | Значение |
---|---|
Заголовок | d3dhal.h (включая D3dhal.h) |
См. также раздел
D3DDP2OP_RENDERSTATE