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


Метод ID2D1CommandSink1::SetPrimitiveBlend1

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

Синтаксис

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 Phone 8.1 [Windows Phone Приложения Silverlight 8.1 и среда выполнения Windows]

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

ID2D1CommandSink1