Перечисление D3DBLEND

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

Синтаксис

typedef enum D3DBLEND { 
  D3DBLEND_ZERO             = 1,
  D3DBLEND_ONE              = 2,
  D3DBLEND_SRCCOLOR         = 3,
  D3DBLEND_INVSRCCOLOR      = 4,
  D3DBLEND_SRCALPHA         = 5,
  D3DBLEND_INVSRCALPHA      = 6,
  D3DBLEND_DESTALPHA        = 7,
  D3DBLEND_INVDESTALPHA     = 8,
  D3DBLEND_DESTCOLOR        = 9,
  D3DBLEND_INVDESTCOLOR     = 10,
  D3DBLEND_SRCALPHASAT      = 11,
  D3DBLEND_BOTHSRCALPHA     = 12,
  D3DBLEND_BOTHINVSRCALPHA  = 13,
  D3DBLEND_BLENDFACTOR      = 14,
  D3DBLEND_INVBLENDFACTOR   = 15,
  D3DBLEND_SRCCOLOR2        = 16,
  D3DBLEND_INVSRCCOLOR2     = 17,
  D3DBLEND_FORCE_DWORD      = 0x7fffffff
} D3DBLEND, *LPD3DBLEND;

Константы

D3DBLEND_ZERO

Коэффициент смешения — (0, 0, 0, 0).

D3DBLEND_ONE

Коэффициент смешения — (1, 1, 1, 1).

D3DBLEND_SRCCOLOR

Коэффициент Blend имеет значение (Rs, Gs, Bs, As).

D3DBLEND_INVSRCCOLOR

Коэффициент смешения равен (1 - Rs, 1 - Gs, 1 - Bs, 1 - As).

D3DBLEND_SRCALPHA

Коэффициент Blend имеет значение (As, As, As, As).

D3DBLEND_INVSRCALPHA

Коэффициент смешения равен ( 1 - As, 1 - As, 1 - As, 1 - As).

D3DBLEND_DESTALPHA

Коэффициент смешения равен (Ad Ad Ad Ad A d).

D3DBLEND_INVDESTALPHA

Коэффициент смешения равен (1 - Ad 1 - Ad 1 - Ad 1 - Ad).

D3DBLEND_DESTCOLOR

Коэффициент смешения равен (Rd, Gd, Bd, Ad).

D3DBLEND_INVDESTCOLOR

Коэффициент смешения равен (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad).

D3DBLEND_SRCALPHASAT

Коэффициент смешения равен (f, f, f, 1); где f = min(As, 1 - Ad).

D3DBLEND_BOTHSRCALPHA

Устарело. Начиная с DirectX 6, вы можете добиться того же эффекта, задав для исходных и целевых коэффициентов смешения D3DBLEND_SRCALPHA и D3DBLEND_INVSRCALPHA в отдельных вызовах.

D3DBLEND_BOTHINVSRCALPHA

Устарело. Коэффициент смешения источника — (1 — As, 1 — As, 1 — As, 1 — As), а коэффициент смешения назначения — (As, As, As); переопределяется выбор целевой смеси. Этот режим наложения поддерживается только для D3DRS_SRCBLEND состояния отрисовки.

D3DBLEND_BLENDFACTOR

Коэффициент постоянного смешивания цветов, используемый блендером буфера кадров. Этот режим наложения поддерживается только в том случае, если D3DPBLENDCAPS_BLENDFACTOR задано в членах SrcBlendCaps или DestBlendCapsD3DCAPS9.

D3DBLEND_INVBLENDFACTOR

Инвертированная константная величина смешивания цветов, используемая блендером буфера кадров. Этот режим наложения поддерживается только в том случае, если бит D3DPBLENDCAPS_BLENDFACTOR задан в элементах SrcBlendCaps или DestBlendCapsэлемента D3DCAPS9.

D3DBLEND_SRCCOLOR2

Коэффициент blend равен (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, не используется). См. раздел Наложение целевого объекта отрисовки.

Различия между Direct3D 9 и Direct3D 9Ex:

  • Этот флаг доступен только в Direct3D 9Ex.

 

D3DBLEND_INVSRCCOLOR2

Коэффициент смешения равен (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, не используется)). См. раздел Наложение целевого объекта отрисовки.

Различия между Direct3D 9 и Direct3D 9Ex:

  • Этот флаг доступен только в Direct3D 9Ex.

 

D3DBLEND_FORCE_DWORD

Принудительно компилирует это перечисление до 32 бит в размере. Без этого значения некоторые компиляторы позволили бы компилировать это перечисление до размера, отличного от 32 бит. Это значение не используется.

Комментарии

В предыдущих описаниях элементов значения RGBA источника и назначения указываются индексами s и d.

Значения в этом перечислимом типе используются в следующих состояниях отрисовки:

  • D3DRS_DESTBLEND
  • D3DRS_SRCBLEND
  • D3DRS_DESTBLENDALPHA
  • D3DRS_SRCBLENDALPHA

См. раздел D3DRENDERSTATETYPE.

Отрисовка целевого смешивания

В Direct3D 9Ex улучшены возможности отрисовки текста. Отрисовка шрифтов с четким типом обычно требует двух проходов. Чтобы исключить второй проход, можно использовать пиксельный шейдер для вывода двух цветов, которые можно назвать PSOutColor[0] и PSOutColor[1]. Первый цвет будет содержать три стандартных компонента цвета (RGB). Второй цвет будет содержать 3 альфа-компонента (по одному для каждого компонента первого цвета).

Эти новые режимы наложения используются только для отрисовки текста в первом целевом объекте отрисовки.

Требования

Требование Значение
Заголовок
D3D9Types.h

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

Перечисления Direct3D