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


Структура 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)

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

DrvEnablePDEV

DrvQueryFont

DrvRealizeBrush

DrvTextOut