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


Метод ID2D1RenderTarget::P ushAxisAlignedClip(constD2D1_RECT_F*,D2D1_ANTIALIAS_MODE) (d2d1.h)

Задает прямоугольник, к которому обрезаются все последующие операции рисования.

Синтаксис

void PushAxisAlignedClip(
  const D2D1_RECT_F   *clipRect,
  D2D1_ANTIALIAS_MODE antialiasMode
);

Параметры

clipRect

Тип: [in] const D2D1_RECT_F*

Размер и положение области обрезки в аппаратно-независимых пикселях.

antialiasMode

Тип: [in] D2D1_ANTIALIAS_MODE

Режим сглаживания, используемый для рисования краев прямоугольника клипа с границами субпикселя, а также для смешивания клипа с содержимым сцены. Смешивание выполняется один раз при вызове метода PopAxisAlignedClip и не применяется к каждому примитиву в слое.

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

None

Remarks

ClipRect преобразуется текущим преобразованием мира, заданным в целевом объекте отрисовки. После применения преобразования к объекту clipRect , который передается, вычисляется выровненный по оси ограничивающий прямоугольник для clipRect . Для повышения эффективности содержимое обрезается в этот выровненный по оси ограничивающий прямоугольник, а не к исходному объекту clipRect , который передается.

На следующих схемах показано, как преобразование поворота применяется к целевому объекту отрисовки, результирующему объекту clipRect и выравниваемой по оси ограничивающей рамке.

  1. Предположим, что прямоугольник на следующем рисунке является целевым объектом отрисовки, выровненным по пикселям экрана. Иллюстрация прямоугольника (целевой объект отрисовки)
  2. Примените преобразование поворота к целевому объекту отрисовки. На следующем рисунке черный прямоугольник представляет исходный целевой объект отрисовки, а красный пунктирный прямоугольник представляет преобразованный целевой объект отрисовки. Иллюстрация повернутого прямоугольника (преобразованный целевой объект отрисовки)
  3. После вызова PushAxisAlignedClip к clipRect применяется преобразование поворота. На следующем рисунке синий прямоугольник представляет преобразованный clipRect. Иллюстрация небольшого синего прямоугольника (преобразованного clipRect) внутри повернутого прямоугольника
  4. Вычисляется ограничивающий прямоугольник, выровненный по оси. Зеленый пунктирный прямоугольник представляет ограничивающий прямоугольник на следующем рисунке. Все содержимое обрезается в ограничивающий прямоугольник, выровненный по оси. Иллюстрация зеленого ограничивающего прямоугольника вокруг небольшого синего прямоугольника внутри повернутого прямоугольника
Примечание Если операции отрисовки завершаются сбоем или если не вызывается PopAxisAlignedClip , вырезки могут привести к возникновению некоторых артефактов в целевом объекте отрисовки. PopAxisAlignedClip можно считать операцией рисования, предназначенной для фиксации границ области обрезки. Без этого вызова границы обрезанной области не могут быть сглаживаются или иным образом исправлены.
 
PushAxisAlignedClip и PopAxisAlignedClip должны совпадать. В противном случае устанавливается состояние ошибки. Чтобы целевой объект отрисовки продолжал получать новые команды, можно вызвать Flush , чтобы удалить ошибку.

Пара PushAxisAlignedClip и PopAxisAlignedClip может возникать вокруг или внутри PushLayer и PopLayer, но не может перекрываться. Например, последовательность PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip является допустимой, но последовательность PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer недопустима.

Этот метод не возвращает код ошибки в случае сбоя. Чтобы определить, завершилась ли операция рисования (например, PushAxisAlignedClip), проверка результат, возвращаемый методами ID2D1RenderTarget::EndDraw или ID2D1RenderTarget::Flush.

Требования

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

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

ID2D1RenderTarget