Метод 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 |