структура D3DDDI_BLTFLAGS (d3dumddi.h)

Структура D3DDDI_BLTFLAGS определяет тип передачи битовых блоков (bitblt).

Синтаксис

typedef struct _D3DDDI_BLTFLAGS {
  union {
    struct {
      UINT Point : 1;
      UINT Linear : 1;
      UINT SrcColorKey : 1;
      UINT DstColorKey : 1;
      UINT MirrorLeftRight : 1;
      UINT MirrorUpDown : 1;
      UINT LinearToSrgb : 1;
      UINT Rotate : 1;
      UINT BeginPresentToDwm : 1;
      UINT ContinuePresentToDwm : 1;
      UINT EndPresentToDwm : 1;
#if ...
      UINT Reserved : 21;
      UINT Discard : 1;
      UINT NoOverwrite : 1;
      UINT Tileable : 1;
#else
      UINT Reserved : 18;
#endif
    };
    UINT Value;
  };
} D3DDDI_BLTFLAGS;

Члены

Point

Значение UINT, указывающее, следует ли использовать фильтрацию точек при передаче битовых блоков. Задание этого элемента эквивалентно установке первого бита 32-разрядного элемента Value (0x00000001).

Linear

Значение UINT, указывающее, следует ли использовать линейную фильтрацию при передаче битовых блоков. Задание этого элемента эквивалентно установке второго бита 32-разрядного элемента Value (0x00000002).

SrcColorKey

Значение UINT, указывающее, следует ли использовать исходный цветовой ключ с помощью значения в элементе ColorKey . То есть любой пиксель в исходной поверхности, соответствующий цветовому ключу, не должен копироваться в целевую область, а все исходные пиксели, которые не соответствуют цветовому ключу, должны быть скопированы.

Задание этого элемента эквивалентно установке третьего бита 32-разрядного элемента Value (0x00000004).

DstColorKey

Значение UINT, указывающее, следует ли использовать целевой ключ цвета с помощью значения в элементе ColorKey . То есть любой пиксель на целевой поверхности, соответствующий цветовому ключу, должен быть заменен соответствующим пикселем из исходной поверхности, и все конечные пиксели, которые не соответствуют цветовому ключу, не должны заменяться.

Задание этого элемента эквивалентно установке четвертого бита 32-разрядного элемента Value (0x00000008).

MirrorLeftRight

Значение UINT, указывающее, переворачивается ли содержимое исходной поверхности по горизонтали вдоль центральной оси в bitblt к целевой поверхности. То есть содержимое в левой части исходной поверхности копируется в правую часть области назначения и наоборот.

Задание этого элемента эквивалентно установке пятого бита 32-разрядного элемента Value (0x00000010).

MirrorUpDown

Значение UINT, указывающее, переворачивается ли содержимое исходной поверхности по вертикали вдоль центральной оси в бит-бльте до целевой поверхности. То есть содержимое в верхней части исходной поверхности копируется в нижнюю часть целевой поверхности и наоборот.

Задание этого элемента эквивалентно установке шестого бита 32-разрядного элемента Value (0x00000020).

LinearToSrgb

Значение UINT, указывающее, следует ли преобразовать источник с линейным форматированием в формат sRGB во время операции bitblt. Формат sRGB исправлен гамма. Дополнительные сведения о формате sRGB см. на веб-сайте sRGB .

Задание этого элемента эквивалентно установке седьмого бита 32-разрядного элемента Value (0x00000040).

Rotate

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

Задание этого элемента эквивалентно установке восьмого бита 32-разрядного элемента Value (0x00000080).

BeginPresentToDwm

Значение UINT, указывающее, начинает ли среда выполнения Microsoft Direct3D операцию dwm present во время операции bitblt. Дополнительные сведения о BeginPresentToDwm см. в разделе Примечания.

Задание этого элемента эквивалентно установке девятого бита 32-разрядного элемента Value (0x00000100).

ContinuePresentToDwm

Значение UINT, указывающее, продолжает ли среда выполнения Direct3D операцию dwm present во время операции bitblt. Дополнительные сведения о ContinuePresentToDwm см. в разделе Примечания.

Задание этого элемента эквивалентно установке десятого бита 32-разрядного элемента Value (0x00000200).

EndPresentToDwm

Значение UINT, указывающее, завершает ли среда выполнения Direct3D операцию dwm present во время операции bitblt. Дополнительные сведения о EndPresentToDwm см. в разделе Примечания.

Задание этого элемента эквивалентно установке одиннадцатого бита 32-разрядного элемента Value (0x00000400).

Reserved

Этот элемент зарезервирован и должен иметь нулевое значение. Присвоение этому элементу нулевого значения эквивалентно установке нулей для оставшихся 21 битов (0xFFFFF800) элемента 32-разрядного значения .

Этот элемент зарезервирован и должен иметь нулевое значение.

Установка для этого элемента значения 0 эквивалентна установке нулей для оставшихся 18 битов (0xFFFFC000) 32-разрядного элемента Value .

Поддерживается начиная с Windows 8.

Discard

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

Если этот элемент не равен NULL, значение NoOverwrite и Tileable должно иметь значение NULL.

Установка этого элемента эквивалентна установке нулей для двенадцатого бита (0xFFFFF800) 32-разрядного элемента Value .

Поддерживается начиная с Windows 8.

NoOverwrite

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

Если этот элемент не имеет значение NULL, значение Отмена должно иметь значение NULL.

Задание этого элемента эквивалентно присвоению тринадцатого бита (0x00001000) 32-разрядного элемента Value равным нулям.

Поддерживается начиная с Windows 8.

Tileable

Для отложенной отрисовки на основе плиток указывает, что операция копирования может работать только с обработанной в данный момент плиткой в исходном или целевом ресурсе, а сцену не нужно очищать во всех плитках.

Если этот элемент не имеет значение NULL, значение Отмена должно иметь значение NULL.

Установка этого элемента эквивалентна установке нулей для четырнадцатого бита (0x00002000) 32-разрядного элемента Value .

Поддерживается начиная с Windows 8.

Value

Элемент в объединении, который содержится в D3DDDI_BLTFLAGS, который может содержать одно 32-разрядное значение, определяющее тип bitblt для выполнения.

Комментарии

Флаги bit-field BeginPresentToDwm, ContinuePresentToDwm и EndPresentToDwm сообщают драйверу отображения пользовательского режима о времени, когда среда выполнения Direct3D выполняет части операции представления DWM. Так как операции представления DWM могут выполняться в нескольких шагах, среда выполнения Direct3D использует эти флаги для пометки шагов в последовательности бит-символов. Пример:

  • Если текущая операция состоит из одного bitblt, bitblt помечается следующим образом:
    • BeginPresentToDwm = TRUE;
    • ContinuePresentToDwm = FALSE;
    • EndPresentToDwm = TRUE;
  • Если текущая операция состоит из двух битов, биты помечаются, как показано в двух последовательных операциях bitblt:
    1. First bitblt:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. Second bitblt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;
  • Если текущая операция состоит из трех или более битов, битблты помечаются как показано в следующих последовательных операциях bitblt:
    1. First bitblt:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. Второй и последовательный бит-знаки, не включая окончательный bitblt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = TRUE;
      • EndPresentToDwm = FALSE;
    3. Окончательный bitblt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista.
Верхняя часть d3dumddi.h (включая D3dumddi.h)

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

D3DDDIARG_BLT

Очистка