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


Метод IDirect3DDevice9::SetClipStatus (d3d9.h)

Задает состояние клипа.

Синтаксис

HRESULT SetClipStatus(
  [in] const D3DCLIPSTATUS9 *pClipStatus
);

Параметры

[in] pClipStatus

Тип: const D3DCLIPSTATUS9*

Указатель на структуру D3DCLIPSTATUS9 , описывающую параметры состояния клипа, которые необходимо задать.

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если один из аргументов недопустим, возвращаемое значение будет D3DERR_INVALIDCALL.

Комментарии

Состояние клипа используется во время программной обработки вершин. Таким образом, этот метод не поддерживается на чистых или нечистых аппаратных устройствах обработки. Дополнительные сведения о чистых устройствах см. в разделе D3DCREATE.

Если во время обработки вершин включена обрезка ( iDirect3DDevice9::P rocessVertices, IDirect3Device9::D rawPrimitive или другими функциями рисования), Direct3D вычисляет код клипа для каждой вершины. Код клипа представляет собой сочетание битов D3DCS_*. Если вершина находится за пределами определенной плоскости обрезки, соответствующий бит задается в коде обрезки. Direct3D поддерживает состояние клипа с помощью D3DCLIPSTATUS9, который содержит элементы ClipUnion и ClipIntersection. ClipUnion — побитовое "ИЛИ" всех кодов клипа вершины, а ClipIntersection — побитовое "AND" всех кодов клипа вершины. Начальные значения равны нулю для ClipUnion и 0xFFFFFFFF для ClipIntersection. Если D3DRS_CLIPPING имеет значение FALSE, ClipUnion и ClipIntersection имеют значение 0. Direct3D обновляет состояние клипа во время вызовов рисования. Чтобы вычислить состояние клипа для определенного объекта, задайте для ClipUnion и ClipIntersection начальное значение и продолжите рисование.

Состояние клипа не обновляется iDirect3Device9::D rawRectPatch и IDirect3DDevice9::D rawTriPatch , так как для них отсутствует программная эмуляция.

Требования

   
Целевая платформа Windows
Header d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DDevice9

IDirect3DDevice9::GetClipStatus