Structure DEVINFO (winddi.h)
La structure DEVINFO fournit des informations sur le pilote et son PDEV privé au moteur graphique.
Syntaxe
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;
Membres
flGraphicsCaps
Ensemble d’indicateurs qui décrivent les fonctionnalités graphiques du pilote graphique et/ou de son matériel. Ces indicateurs sont définis dans le tableau suivant.
Indicateur | Définition |
---|---|
GCAPS_ALTERNATEFILL | Gère les remplissages alternés. |
GCAPS_ARBRUSHOPAQUE | Prend en charge un pinceau arbitraire pour le rectangle opaque de texte (couleur d’arrière-plan). |
GCAPS_ARBRUSHTEXT | Prend en charge un pinceau arbitraire pour la couleur de premier plan du texte. |
GCAPS_ASYNCCHANGE | Cet indicateur est obsolète. Dans les pilotes hérités, cet indicateur indique que le pilote peut modifier la forme du pointeur dans le matériel pendant que d’autres dessins se produisent sur l’appareil. |
GCAPS_ASYNCMOVE | Le pilote peut déplacer le pointeur dans le matériel pendant qu’un autre dessin se produit sur l’appareil. |
GCAPS_BEZIERS | Gère les courbes de Bézier. |
GCAPS_CMYKCOLOR | Le pilote prend en charge l’espace de couleur CYMK. |
GCAPS_COLOR_DITHER | Gère le dithering des couleurs sur une surface compatible PDEV. |
GCAPS_DIRECTDRAW | Cet indicateur est obsolète. |
GCAPS_DITHERONREALIZE | Spécifie que GDI peut appeler DrvRealizeBrush avec le RVB à tramer directement. |
GCAPS_DONTJOURNAL | Interdit l’impression de métafichiers sur ce pilote d’imprimante. Cela n’est valable que pour les contrôleurs de domaine d’imprimante et entraîne généralement un délai de retour à l’application plus lent lors de l’impression. |
GCAPS_FONT_RASTERIZER | Le matériel de l’appareil peut rasteriser les polices TrueType. |
GCAPS_FORCEDITHER | Permet le dithering sur tous les stylets géométriques. |
GCAPS_GEOMETRICWIDE | Gère l’élargissement géométrique. |
GCAPS_GRAY16 | Gère le texte anti-attirail en mode natif. |
GCAPS_HALFTONE | Gère la demi-toning. |
GCAPS_HIGHRESTEXT | Cet indicateur est obsolète. Dans les pilotes hérités, cet indicateur indique que le pilote demande des positions de glyphes telles que retournées par le STROBJ dans les coordonnées de point FIX. |
GCAPS_HORIZSTRIKE | Cet indicateur est obsolète. Dans les pilotes hérités, cet indicateur indique que le pilote gère les grèves horizontales dans DrvTextOut. |
GCAPS_ICM | Indique que les opérations de gestion des couleurs peuvent être effectuées par le pilote ou le matériel d’imprimante. |
GCAPS_LAYERED | Indique qu’il s’agit d’un pilote de couche ou de miroir pour la communication à distance. Les pilotes d’imprimante ne peuvent pas être des pilotes de couche. |
GCAPS_MONO_DITHER | Gère le dithering monochrome. |
GCAPS_NO64BITMEMACCESS | Cet indicateur est obsolète. |
GCAPS_NUP | Indique que l’impression « N-up » est prise en charge. |
GCAPS_OPAQUERECT | Gère les rectangles opaques dans DrvTextOut. |
GCAPS_PALMANAGED | Prend en charge la gestion des palettes. |
GCAPS_PANNING | Lorsque GDI simule le pointeur, il doit appeler DrvMovePointer pour informer le pilote de la position actuelle du curseur. Cela permet au pilote de gérer les affichages virtuels panoramiques. |
GCAPS_SCREENPRECISION | Le rastériseur (moteur de polices) doit choisir une police d’écran (réversible) sur une police d’appareil lors du choix d’une police pour laquelle il n’existe aucune correspondance exacte. |
GCAPS_VECTORFONT | Gère la caresse des polices vectorielles dans DrvTextOut. |
GCAPS_VERTSTRIKE | Cet indicateur est obsolète. Dans les pilotes hérités, cet indicateur indiquait que le pilote gérait les grèves verticales dans DrvTextOut. |
GCAPS_WINDINGFILL | Gère les remplissages en mode enroulement. Pour plus d’informations, consultez Modes de remplissage de chemin d’accès. |
GCAPS2_REMOTEDRIVER | Indique que le pilote d’affichage est utilisé pour prendre en charge une session utilisateur à distance. |
lfDefaultFont
Structure de police logique étendue qui spécifie la police par défaut d’un appareil. Pour plus d’informations sur cette structure, consultez EXTLOGFONT dans la documentation Microsoft Windows SDK.
lfAnsiVarFont
Structure de police logique étendue qui spécifie la police de pas variable par défaut pour un appareil. Pour plus d’informations sur cette structure, consultez EXTLOGFONT dans la documentation SDK Windows.
lfAnsiFixFont
Structure de police logique étendue qui spécifie la police à pas fixe (monospaced) par défaut pour un appareil. Pour plus d’informations sur cette structure, consultez EXTLOGFONT dans la documentation SDK Windows.
cFonts
Spécifie le nombre de polices d’appareil. GDI suppose que l’appareil peut dessiner du texte avec ce nombre de polices sur ses propres surfaces et que le pilote peut fournir des informations sur les métriques sur les polices. Si le pilote définit cFonts sur -1, GDI attend que des polices soient nécessaires pour interroger le pilote sur le nombre réel de polices qu’il prend en charge dans un appel à DrvQueryFont.
iDitherFormat
Spécifie le format de l’image bitmap. Ce paramètre indique le nombre de bits d’informations de couleur par pixel qui sont demandés et doit correspondre à l’une des valeurs suivantes :
Valeur | Signification |
---|---|
BMF_1BPP | Monochrome |
BMF_4BPP | 4 bits par pixel |
BMF_8BPP | 8 bits par pixel |
BMF_16BPP | 16 bits par pixel |
BMF_24BPP | 24 bits par pixel |
BMF_32BPP | 32 bits par pixel |
BMF_4RLE | 4 bits par pixel, longueur d’exécution encodée |
BMF_8RLE | 8 bits par pixel, longueur d’exécution encodée |
BMF_JPEG | Image compressée JPEG |
BMF_PNG | Image compressée PNG |
cxDither
cyDither
Spécifiez les dimensions d’un pinceau à trame. Si ces membres ne sont pas nuls, l’appareil peut créer un pinceau dithered pour une couleur RVB donnée.
hpalDefault
Gérez la palette par défaut pour l’appareil. Le pilote doit créer la palette en appelant EngCreatePalette. Le pilote associe une palette à un appareil en retournant cette poignée à GDI.
flGraphicsCaps2
Ensemble d’indicateurs qui décrivent des fonctionnalités graphiques supplémentaires du pilote de périphérique. Ces indicateurs sont définis dans le tableau suivant.
Indicateur | Définition |
---|---|
GCAPS2_ALPHACURSOR | Gère les pointeurs avec des valeurs alpha par pixel. |
GCAPS2_CHANGEGAMMARAMP | Le périphérique d’affichage a une rampe gamma matérielle chargeable. |
GCAPS2_EXCLUDELAYERED | Indique qu’il s’agit d’un pilote miroir d’accessibilité. Les pilotes miroir qui ne définissent pas cet indicateur recevront toujours des primitives de dessin pour les disques HWND en couches. Pour plus d’informations, consultez Pilotes miroirs . |
GCAPS2_ICD_MULTIMON | Informe GDI que le pilote a l’intention de gérer les appels DrvSetPixelFormat, DrvDescribePixelFormat et DrvSwapBuffers dans un environnement multimon, même lorsque le rectangle de l’opération croise également un autre appareil. Un seul appareil a la possibilité de gérer ces appels. Si la fonctionnalité n’est pas spécifiée et que la région impliquée croise plusieurs appareils, aucun pilote n’est appelé. |
GCAPS2_INCLUDEAPIBITMAPS | Lorsque des appels de dessin sont effectués vers une bitmap indépendante de l’appareil (DIB), un pilote d’accessibilité miroir est appelé. Pour plus d’informations, consultez Pilotes miroirs . |
GCAPS2_JPEGSRC | L’appareil peut accepter les images compressées JPEG (c’est-à-dire les images pour lesquelles BMF_JPEG est défini dans la structure SURFOBJ ). |
GCAPS2_MOUSETRAILS | Indique que le pilote prend en charge les traces de souris (une succession d’images de curseur montrant l’emplacement de la souris pendant une courte période). Le pilote est capable de gérer les valeurs envoyées par GDI dans le paramètre fl de la fonction DrvSetPointerShape . Le conducteur doit utiliser les masques SPS_LENGTHMASK et SPS_FREQMASK pour obtenir des valeurs pour la longueur et la fréquence des traces de souris. Pour plus d’informations sur ces masques, consultez DrvSetPointerShape . |
GCAPS2_PNGSRC | L’appareil peut accepter les images compressées PNG (c’est-à-dire les images pour lesquelles BMF_PNG est défini dans la structure SURFOBJ ). |
GCAPS2_SYNCFLUSH | Le pilote prend en charge un mécanisme de vidage par programmation pour les appels DDI graphiques par lots. DrvSynchronizeSurface est appelé chaque fois que GDI doit vider tout dessin en cours de traitement par lot par le pilote. |
GCAPS2_SYNCTIMER | Le pilote prend en charge un mécanisme de vidage basé sur le minuteur pour les appels DDI graphiques par lots. DrvSynchronizeSurface sera appelé régulièrement, en fonction d’un intervalle de minuteur déterminé par GDI. |
Remarques
La fonction DrvEnablePDEV du pilote remplit une structure DEVINFO ; le pilote doit définir uniquement les membres qui lui sont pertinents. Cette structure est zéro initialisée par GDI avant l’appel de DrvEnablePDEV . Les applications n’ont pas d’accès direct à cette structure.
Si un pilote définit GCAPS2_JPEGSRC ou GCAPS2_PNGSRC dans flGraphicsCaps2, les règles suivantes s’appliquent :
- Le pilote doit fournir une fonction DrvQueryDeviceSupport .
-
Chaque fonction DDI graphique définie par le pilote qui reçoit une structure SURFOBJ en tant qu’entrée doit être en mesure de prendre en charge le format compressé ou de retourner un code d’erreur. Dans le cas des pilotes d’imprimante, pour prendre en charge le format compressé, le pilote doit être en mesure d’effectuer l’une des tâches suivantes :
- Si le périphérique d’impression peut traiter le format compressé JPEG/PNG, le pilote d’imprimante doit passer le format compressé à sa sortie PDL (Page Description Language).
- Si le périphérique d’impression ne peut pas traiter le format compressé JPEG/PNG, le pilote d’imprimante doit d’abord convertir le format JPEG/PNG compressé en un autre format d’image que le périphérique d’impression peut traiter. Le pilote d’imprimante peut ensuite rendre les informations d’image disponibles dans la sortie PDL du pilote.
Note En cas de conversion de JPEG/PNG au format bitmap, le pilote d’imprimante ne doit pas utiliser les fonctions GDI. Par exemple, le pilote peut utiliser les API wic (Windows Imaging Component) à la place pour effectuer la conversion.
- Le pilote doit être en mesure de gérer des régions de clip complexes pour les images qui utilisent le format compressé.
- Pour les fonctions DDI graphiques définies par le pilote qui reçoivent un argument d’entrée ROP4, seule 0xCCCC est utilisée avec les formats JPEG et PNG.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | winddi.h (inclure Winddi.h) |