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


Метод ID2D1CommandSink1::SetPrimitiveBlend1 (d2d1_2.h)

Задает новый режим наложения примитивов.

Синтаксис

HRESULT SetPrimitiveBlend1(
  D2D1_PRIMITIVE_BLEND primitiveBlend
);

Параметры

primitiveBlend

Тип: D2D1_PRIMITIVE_BLEND

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

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

Тип: HRESULT

Если метод завершается успешно, он возвращает S_OK. В случае сбоя возвращается код ошибки HRESULT .

Комментарии

Режимы смешения

Для отрисовки с псевдонимом (за исключением режима MIN) выходное значение O вычисляется путем линейной интерполяции смешивания значений (S, D) со значением целевого пикселя в зависимости от того, насколько примитив охватывает целевой пиксель.

В таблице ниже показаны режимы примитивного наложения для смешения с псевдонимами и сглаживания. В уравнениях, перечисленных в таблице, используются следующие элементы:

  • O = выходные данные
  • S = источник
  • SA = исходный альфа-канал
  • D = назначение
  • DA = целевой альфа-канал
  • C = покрытие пикселей
Режим наложения примитивов Наложение псевдонимов Сглаживание Описание
D2D1_PRIMITIVE_BLEND_SOURCE_OVER O = (S + (1 – SA) * D) * C + D * (1 – C) O = S * C + D *(1 – SA *C) Стандартный режим наложения источника по назначению.
D2D1_PRIMITIVE_BLEND_COPY O = S * C + D * (1 –C) O = S * C + D * (1 –C) Источник копируется в место назначения; конечные пиксели игнорируются.
D2D1_PRIMITIVE_BLEND_MIN O = Min(S + 1-SA, D) O = Min(S * C + 1 – SA *C, D) Полученные значения пикселей используют минимальное значение исходного и целевого пикселей. Доступно в Windows 8 и более поздних версиях.
D2D1_PRIMITIVE_BLEND_ADD O = (S + D) * C + D * (1 – C) O = S * C + D Результирующее значение пикселей — это сумма значений исходного и целевого пикселей. Доступно в Windows 8 и более поздних версиях.
  Иллюстрация примитивных режимов наложения Direct2D с различной непрозрачностью и фоном. Иллюстрация примитивных режимов наложения с различной непрозрачностью и фоном.

Примитивное сочетание будет применяться ко всем примитивам, нарисованным в контексте, если только это не переопределено параметром compositeMode в API DrawImage .

Примитивная смесь применяется к внутренней части любых примитивов, нарисованных в контексте. В случае DrawImage это будет подразумеваться прямоугольником изображения, смещением и преобразованием мира.

Если примитивная смесь отличается от D2D1_PRIMITIVE_BLEND_OVER то отрисовка ClearType будет отключена. Если приложение явно выполняет отрисовку ClearType в этих режимах, контекст рисования будет помещен в состояние ошибки. D2DERR_WRONG_STATE будут возвращены из EndDraw или Flush.

Требования

Требование Значение
Минимальная версия клиента Windows 8.1 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d2d1_2.h

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

ID2D1CommandSink1