Метод IDirect3DDevice9::SetClipStatus (d3d9helper.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 — это побитовое "OR" всех кодов клипа вершин, а ClipIntersection — побитовое "И" для всех кодов клипа вершин. Начальные значения равны нулю для ClipUnion и 0xFFFFFFFF для ClipIntersection. Если D3DRS_CLIPPING имеет значение FALSE, ClipUnion и ClipIntersection равны нулю. Direct3D обновляет состояние клипа во время вызовов рисования. Чтобы вычислить состояние клипа для определенного объекта, задайте для ClipUnion и ClipIntersection начальное значение и продолжайте рисование.

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

Требования

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

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

IDirect3DDevice9

IDirect3DDevice9::GetClipStatus