Структура D3DCLIPSTATUS9
Описывает текущее состояние клипа.
Синтаксис
typedef struct D3DCLIPSTATUS9 {
DWORD ClipUnion;
DWORD ClipIntersection;
} D3DCLIPSTATUS9, *LPD3DCLIPSTATUS9;
Члены
-
ClipUnion
-
Тип: DWORD
-
Флаги объединения клипов, описывающие текущее состояние клипа. Этот элемент может быть одним или несколькими из следующих флагов:
Значение Значение - D3DCS_ALL
Сочетание всех флагов клипа. - D3DCS_LEFT
Все вершины обрезаются левой плоскостью смотрового фрустума. - D3DCS_RIGHT
Все вершины обрезаются правой плоскостью смотрового фрустума. - D3DCS_TOP
Все вершины обрезаются верхней плоскостью фрустума просмотра. - D3DCS_BOTTOM
Все вершины обрезаются нижней плоскостью смотровой поверхности. - D3DCS_FRONT
Все вершины обрезаются передней плоскостью смотрового фрустума. - D3DCS_BACK
Все вершины обрезаются задней плоскостью фрустума просмотра. - D3DCS_PLANE0
Определяемые приложением плоскости обрезки. - D3DCS_PLANE1
Определяемые приложением плоскости обрезки. - D3DCS_PLANE2
Определяемые приложением плоскости обрезки. - D3DCS_PLANE3
Определяемые приложением плоскости обрезки. - D3DCS_PLANE4
Определяемые приложением плоскости обрезки. - D3DCS_PLANE5
Определяемые приложением плоскости обрезки. -
ClipIntersection
-
Тип: DWORD
-
Флаги пересечения клипов, описывающие текущее состояние клипа. Этот член может принимать те же флаги, что и ClipUnion.
Комментарии
Если во время обработки вершин включена обрезка (с помощью ProcessVertices, DrawPrimitive или других функций рисования), Direct3D вычисляет код клипа для каждой вершины. Код клипа представляет собой сочетание битов D3DCS_*. Если вершина находится за пределами определенной плоскости обрезки, соответствующий бит задается в коде обрезки. Direct3D поддерживает состояние клипа с помощью D3DCLIPSTATUS9, который содержит элементы ClipUnion и ClipIntersection. ClipUnion — побитовое ИЛИ всех кодов клипа вершин, а ClipIntersection — побитовое И всех кодов клипа вершин. Начальные значения равны нулю для ClipUnion и 0xFFFFFFFF для ClipIntersection. Если D3DRS_CLIPPING имеет значение FALSE, ClipUnion и ClipIntersection имеют значение 0. Direct3D обновляет состояние клипа во время вызовов рисования. Чтобы вычислить состояние клипа для определенного объекта, задайте для ClipUnion и ClipIntersection начальное значение и продолжите рисование.
DrawRectPatch и DrawTriPatch не обновляют состояние клипа, так как для них отсутствует программная эмуляция.
Требования
Требование | Значение |
---|---|
Заголовок |
|
См. также раздел