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


Структура XLATEOBJ (winddi.h)

Структура XLATEOBJ используется для преобразования цветовых индексов из одной палитры в другую.

Синтаксис

typedef struct _XLATEOBJ {
  ULONG  iUniq;
  FLONG  flXlate;
  USHORT iSrcType;
  USHORT iDstType;
  ULONG  cEntries;
  ULONG  *pulXlate;
} XLATEOBJ;

Члены

iUniq

Идентификатор кэша, позволяющий драйверу распознавать ранее кэшированную структуру XLATEOBJ. Если этот элемент равен нулю, драйвер не должен кэшировать структуру XLATEOBJ.

flXlate

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

Значение Значение
XO_DEVICE_ICM ICM включен на устройстве. Драйвер должен переводить цвет в соответствии с преобразованием цвета, созданным DrvIcmCreateColorTransform. Драйвер должен вызвать XLATEOBJ_hGetColorTransform , чтобы получить дескриптор преобразования цвета. Этот бит является взаимоисключающим из XO_HOST_ICM.
XO_FROM_CMYK В результате перевода ICM исходные индексы переводятся в 32-разрядный цветовый формат CMYK . Если этот бит задан, iSrcType, iDstType, cEntries и pulXlate следует игнорировать.
XO_HOST_ICM ICM выполняется графическим обработчиком, поэтому цвета в этой таблице цветов корректируются на целевую поверхность. Этот бит задается GDI в качестве сведений для драйвера: драйвер не требует никаких действий. Этот бит является взаимоисключающим из XO_DEVICE_ICM.
XO_TABLE Для перевода исходных индексов в целевые индексы предоставляется таблица.
XO_TO_MONO Исходные индексы преобразуются в монохромный формат со специальным свойством, которое все индексы сопоставляются с нулевым значением, кроме одного. Драйвер может использовать его для ускорения передачи блоков.
XO_TRIVIAL Исходные индексы можно использовать в качестве целевых индексов.

iSrcType

Является устаревшим. Используйте XLATEOBJ_cGetPalette для запроса исходного формата.

iDstType

Является устаревшим. Используйте XLATEOBJ_cGetPalette для запроса формата назначения.

cEntries

Указывает количество записей в массиве, на который указывает элемент pulXlate . Индексирование в pulXlate со значением больше cEntries приводит к нарушению доступа к памяти.

pulXlate

Указатель на массив записей перевода.

Комментарии

Целевая палитра всегда относится к целевой поверхности какой-то операции рисования. Исходная палитра — это палитра, выбранная приложением, или палитра из другой поверхности.

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

Требования

Требование Значение
Заголовок winddi.h (включая Winddi.h)

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

DrvIcmCreateColorTransform

XLATEOBJ_cGetPalette

XLATEOBJ_hGetColorTransform

XLATEOBJ_piVector