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


Структура 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 не обновляют состояние клипа, так как для них отсутствует программная эмуляция.

Требования

Требование Значение
Заголовок
D3D9Types.h

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

Структуры Direct3D

GetClipStatus

SetClipStatus