Структура DEVINFO (winddi.h)
Структура DEVINFO предоставляет сведения о драйвере и его частном PDEV графическому движку.
Синтаксис
typedef struct tagDEVINFO {
FLONG flGraphicsCaps;
LOGFONTW lfDefaultFont;
LOGFONTW lfAnsiVarFont;
LOGFONTW lfAnsiFixFont;
ULONG cFonts;
ULONG iDitherFormat;
USHORT cxDither;
USHORT cyDither;
HPALETTE hpalDefault;
FLONG flGraphicsCaps2;
} DEVINFO, *PDEVINFO;
Члены
flGraphicsCaps
Набор флагов, описывающих графические возможности графического драйвера и (или) его оборудования. Эти флаги определены в следующей таблице.
Флаг | Определение |
---|---|
GCAPS_ALTERNATEFILL | Обрабатывает чередующиеся заливки. |
GCAPS_ARBRUSHOPAQUE | Поддерживает произвольную кисть для непрозрачного прямоугольника текста (цвет фона). |
GCAPS_ARBRUSHTEXT | Поддерживает произвольную кисть для цвета переднего плана текста. |
GCAPS_ASYNCCHANGE | Этот флаг устарел. В устаревших драйверах этот флаг указывает, что драйвер может изменять фигуру указателя на оборудовании, пока на устройстве выполняется другой рисунок. |
GCAPS_ASYNCMOVE | Драйвер может перемещать указатель в аппаратном режиме, пока на устройстве выполняется другое рисование. |
GCAPS_BEZIERS | Обрабатывает кривые Безье. |
GCAPS_CMYKCOLOR | Драйвер поддерживает цветовое пространство CYMK. |
GCAPS_COLOR_DITHER | Обрабатывает изменение цвета на поверхность, совместимую с PDEV. |
GCAPS_DIRECTDRAW | Этот флаг устарел. |
GCAPS_DITHERONREALIZE | Указывает, что GDI может вызывать DrvRealizeBrush с RGB для прямого смещения. |
GCAPS_DONTJOURNAL | Запрещает печать метафайлов в драйвере принтера. Это допустимо только для контроллеров домена принтера и, как правило, приводит к замедлению возврата к приложению при печати. |
GCAPS_FONT_RASTERIZER | Оборудование устройства может растеризовать шрифты TrueType. |
GCAPS_FORCEDITHER | Разрешает монтирование на всех геометрических ручках. |
GCAPS_GEOMETRICWIDE | Обрабатывает геометрическое расширение. |
GCAPS_GRAY16 | Обрабатывает сглаживаемый текст в собственном коде. |
GCAPS_HALFTONE | Обрабатывает полутоны. |
GCAPS_HIGHRESTEXT | Этот флаг устарел. В устаревших драйверах этот флаг указывает, что драйвер запрашивает позиции глифа, возвращаемые STROBJ в координатах точек FIX. |
GCAPS_HORIZSTRIKE | Этот флаг устарел. В устаревших драйверах этот флаг указывает, что драйвер обрабатывает горизонтальные зачеркивающие удары в DrvTextOut. |
GCAPS_ICM | Указывает, что операции управления цветом могут выполняться драйвером или принтером. |
GCAPS_LAYERED | Указывает, что это драйвер уровня или зеркало для удаленного взаимодействия. Драйверы принтера не могут быть драйверами слоев. |
GCAPS_MONO_DITHER | Выполняет монохромную литую обработку. |
GCAPS_NO64BITMEMACCESS | Этот флаг устарел. |
GCAPS_NUP | Указывает, что поддерживается печать "N-up". |
GCAPS_OPAQUERECT | Обрабатывает непрозрачные прямоугольники в DrvTextOut. |
GCAPS_PALMANAGED | Поддерживает управление палитрой. |
GCAPS_PANNING | Когда GDI имитирует указатель, он должен вызвать DrvMovePointer , чтобы уведомить драйвер о текущей позиции курсора. Это позволяет драйверу обрабатывать сдвиг виртуальных дисплеев. |
GCAPS_SCREENPRECISION | Растеризатор (обработчик шрифтов) должен выбрать экранный (мягкий) шрифт вместо шрифта устройства при выборе шрифта, для которого нет точного совпадения. |
GCAPS_VECTORFONT | Обрабатывает поглаживание векторных шрифтов в DrvTextOut. |
GCAPS_VERTSTRIKE | Этот флаг устарел. В устаревших драйверах этот флаг указывает, что драйвер обрабатывал вертикальные зачеркивающие элементы в DrvTextOut. |
GCAPS_WINDINGFILL | Обрабатывает заливки в режиме обмотки. Дополнительные сведения см. в разделе Режимы заполнения пути . |
GCAPS2_REMOTEDRIVER | Указывает, что драйвер дисплея используется для поддержки сеанса удаленного пользователя. |
lfDefaultFont
Структура расширенного логического шрифта, указывающая шрифт по умолчанию для устройства. Дополнительные сведения об этой структуре см. в разделе EXTLOGFONT в документации по Microsoft Windows SDK.
lfAnsiVarFont
Структура расширенного логического шрифта, которая задает шрифт переменной тона по умолчанию для устройства. Дополнительные сведения об этой структуре см. в разделе EXTLOGFONT в документации по Windows SDK.
lfAnsiFixFont
Структура расширенного логического шрифта, которая задает шрифт фиксированного тона (монопространствен) по умолчанию для устройства. Дополнительные сведения об этой структуре см. в разделе EXTLOGFONT в документации по Windows SDK.
cFonts
Указывает количество шрифтов устройства. GDI предполагает, что устройство может рисовать текст с таким количеством шрифтов на собственных поверхностях, а драйвер может предоставлять сведения о метриках шрифтов. Если драйвер устанавливает для cFonts значение -1, GDI будет ожидать, пока не потребуются шрифты, чтобы запросить у драйвера фактическое количество поддерживаемых шрифтов в вызове DrvQueryFont.
iDitherFormat
Задает формат растрового изображения. Этот параметр указывает, сколько битов информации о цвете запрашивается на пиксель, и должен иметь одно из следующих значений:
Значение | Значение |
---|---|
BMF_1BPP | Монохромный |
BMF_4BPP | 4 бита на пиксель |
BMF_8BPP | 8 бит на пиксель |
BMF_16BPP | 16 бит на пиксель |
BMF_24BPP | 24 бита на пиксель |
BMF_32BPP | 32 бита на пиксель |
BMF_4RLE | 4 бита на пиксель, длина выполнения закодирована |
BMF_8RLE | 8 бит на пиксель, длина выполнения закодирована |
BMF_JPEG | Сжатое изображение JPEG |
BMF_PNG | Сжатое изображение PNG |
cxDither
cyDither
Укажите размеры смеженой кисти. Если эти члены являются ненулевыми, устройство может создать кисть с мятой для заданного цвета RGB.
hpalDefault
Обработка палитры по умолчанию для устройства. Драйвер должен создать палитру, вызвав EngCreatePalette. Драйвер связывает палитру с устройством, возвращая этот дескриптор в GDI.
flGraphicsCaps2
Набор флагов, описывающих дополнительные графические возможности драйвера устройства. Эти флаги определены в следующей таблице.
Флаг | Определение |
---|---|
GCAPS2_ALPHACURSOR | Обрабатывает указатели с альфа-значениями для каждого пикселя. |
GCAPS2_CHANGEGAMMARAMP | Устройство отображения имеет загружаемую аппаратную гамма-рампу. |
GCAPS2_EXCLUDELAYERED | Указывает, что это драйвер специальных возможностей зеркало. Драйверы зеркального отображения, которые не устанавливают этот флаг, по-прежнему будут получать примитивы рисования для многоуровневых HWND. Дополнительные сведения см. в разделе Зеркальные драйверы . |
GCAPS2_ICD_MULTIMON | Сообщает GDI, что драйвер намерен обрабатывать вызовы DrvSetPixelFormat, DrvDescribePixelFormat и DrvSwapBuffers в многомерной среде, даже если прямоугольник в операции также пересекается с другим устройством. Только одному устройству когда-либо предоставляется возможность обрабатывать эти вызовы. Если возможность не указана и регион пересекается с несколькими устройствами, драйвер не вызывается. |
GCAPS2_INCLUDEAPIBITMAPS | При выполнении вызовов рисования к независимому от устройства растрового изображения (DIB) будет вызываться драйвер зеркало специальных возможностей. Дополнительные сведения см. в разделе Зеркальные драйверы . |
GCAPS2_JPEGSRC | Устройство может принимать сжатые изображения JPEG (то есть изображения, для которых BMF_JPEG задано в структуре SURFOBJ ). |
GCAPS2_MOUSETRAILS | Указывает, что драйвер поддерживает следы мыши (пооследние изображений курсоров, показывающих расположение мыши в течение короткого периода времени). Драйвер способен обрабатывать значения, отправляемые GDI в параметре fl функции DrvSetPointerShape . Драйвер должен использовать маски SPS_LENGTHMASK и SPS_FREQMASK для получения значений длины и частоты следов мыши. Дополнительные сведения об этих масках см. в разделе DrvSetPointerShape . |
GCAPS2_PNGSRC | Устройство может принимать сжатые изображения в формате PNG (то есть изображения, для которых BMF_PNG задано в структуре SURFOBJ ). |
GCAPS2_SYNCFLUSH | Драйвер поддерживает программный механизм очистки для пакетных вызовов DDI графики. DrvSynchronizeSurface будет вызываться всякий раз, когда GDI должен очистить все чертежи, которые пакетируются драйвером. |
GCAPS2_SYNCTIMER | Драйвер поддерживает механизм очистки на основе таймера для пакетных вызовов DDI графики. DrvSynchronizeSurface будет вызываться периодически на основе интервала таймера, определенного GDI. |
Комментарии
Функция DrvEnablePDEV драйвера заполняет структуру DEVINFO; драйвер должен задавать только те члены, которые относятся к нему. Эта структура инициализируется GDI с нуля до вызова DrvEnablePDEV . Приложения не имеют прямого доступа к этой структуре.
Если драйвер задает GCAPS2_JPEGSRC или GCAPS2_PNGSRC в flGraphicsCaps2, применяются следующие правила:
- Драйвер должен предоставить функцию DrvQueryDeviceSupport .
-
Каждая графическая функция DDI, определяемая драйвером, которая получает в качестве входных данных структуру SURFOBJ , должна поддерживать сжатый формат или возвращать код ошибки. В случае с драйверами принтеров для поддержки сжатого формата драйвер должен иметь возможность выполнять одну из следующих задач:
- Если устройство печати может обработать сжатый формат JPEG/PNG, драйвер принтера должен передать сжатый формат в выходные данные языка описания страниц (PDL).
- Если устройство печати не может обработать сжатый формат JPEG/PNG, драйвер принтера должен сначала преобразовать сжатый формат JPEG/PNG в другой формат изображения, который может обработать устройство печати. Затем драйвер принтера может сделать сведения об изображении доступными в выходных данных PDL драйвера.
Примечание В случае преобразования формата JPEG/PNG в формат растрового изображения драйвер принтера не должен использовать функции GDI. Например, драйвер может использовать ВМЕСТО этого API компонента образов Windows (WIC) для выполнения преобразования.
- Драйвер должен иметь возможность обрабатывать сложные области клипа для изображений, использующих сжатый формат.
- Для определяемых драйвером графических функций DDI, получающих входной аргумент ROP4, используется только 0xCCCC с форматами JPEG и PNG.
Требования
Требование | Значение |
---|---|
Заголовок | winddi.h (включая Winddi.h) |