Partager via


Mise à l’échelle de l’image de bureau

Cette rubrique s’applique uniquement à Windows 7 et versions ultérieures, ainsi qu’à Windows Server 2008 R2 et versions ultérieures du système d’exploitation Windows.

Fonctionnement de la mise à l’échelle

Un appelant peut utiliser la fonction SETDisplayConfig Connecting and Configuring Displays (CCD) pour mettre à l’échelle l’image de bureau sur le moniteur :

  • Si le bureau et le moniteur utilisent la même résolution, SetDisplayConfig n’est pas nécessaire pour mettre à l’échelle l’image de bureau sur le moniteur. Cette opération SetDisplayConfig est appelée mise à l’échelle des identités.

  • Si la résolution du bureau et du moniteur est différente, SetDisplayConfig applique l’un des types de mise à l’échelle suivants. La résolution du moniteur est définie par la structure DISPLAYCONFIG_TARGET_MODE .

    • Mise à l’échelle centrée

      La mise à l’échelle centrée est un mode dans lequel le bureau est affiché sur le moniteur sans aucune mise à l’échelle. Lorsque SetDisplayConfig applique une mise à l’échelle centrée, les bandes noires peuvent être visibles au-dessus et en dessous du bureau. La figure suivante illustre la mise à l’échelle centrée.

      Diagramme montrant la mise à l’échelle centrée avec des bandes noires au-dessus et en dessous du bureau.

    • Mise à l’échelle étendue

      La mise à l’échelle étendue est un mode dans lequel le bureau est étiré horizontalement et verticalement sur le moniteur pour garantir que l’affichage entier est utilisé. Lorsque SetDisplayConfig applique une mise à l’échelle étendue, aucune bande noire n’est visible au-dessus et en dessous du bureau. Toutefois, le bureau peut sembler déformé. La figure suivante illustre la mise à l’échelle étendue.

      Diagramme montrant la mise à l’échelle étendue avec le bureau remplissant l’intégralité de l’affichage.

    • Aspect-ratio-conservation étiré

      La mise à l’échelle étirée préservant les proportions est un mode dans lequel le bureau est étiré horizontalement et verticalement autant que possible tout en conservant les proportions. Lorsque SetDisplayConfig applique une mise à l’échelle étendue avec préservation des proportions, les bandes noires peuvent être visibles au-dessus et en dessous , ou à gauche et à droite du bureau. Toutefois, les bandes noires ne peuvent pas être visibles à la fois au-dessus et en dessous, et à gauche et à droite du bureau. Étant donné que les utilisateurs sont censés préférer ce type de mise à l’échelle, SetDisplayConfig applique ce type de mise à l’échelle par défaut. La figure suivante montre la mise à l’échelle étendue avec préservation des proportions.

      Diagramme montrant la mise à l’échelle étirée préservant les proportions avec des bandes noires de chaque côté ou au-dessus et en dessous du bureau.

La mise à l’échelle dépend des modes source et cible utilisés pour un chemin d’accès. En outre, l’appelant peut appeler SetDisplayConfig sans spécifier les informations de mode cible (autrement dit, la définition du paramètre modeInfoArray est facultative et peut être définie sur NULL). Cela signifie que l’appelant ne peut généralement pas prédire si SetDisplayConfig doit effectuer une mise à l’échelle. En outre, il n’existe aucune API pour obtenir la liste complète des types de mise à l’échelle pris en charge par la carte graphique. La fonction EnumDisplaySettings Win32 retourne DMDFO_DEFAULT dans le membre dmDisplayFixedOutput de la structure DEVMODE vers laquelle pointe le paramètre lpDevMode lorsque l’appelant demande les types de mise à l’échelle Windows 7.

La mise à l’échelle qu’un appelant passe à SetDisplayConfig est une intention de mise à l’échelle plutôt qu’une demande explicite d’exécution d’une opération de mise à l’échelle. Si la mise à l’échelle est requise (par exemple, les résolutions source et cible diffèrent), SetDisplayConfig utilise la mise à l’échelle que l’appelant fournit. Si la mise à l’échelle fournie n’est pas prise en charge, SetDisplayConfig utilise la mise à l’échelle par défaut de la carte graphique. Lorsque les résolutions source et cible que l’appelant passe à SetDisplayConfig sont identiques, SetDisplayConfig définit toujours la mise à l’échelle des identités.

Demandes de mise à l’échelle

Le tableau suivant présente les différentes demandes de mise à l’échelle SetDisplayConfig et identifie la nomenclature abrégée utilisée dans les tables trouvées dans les sous-sections ci-dessous. Consultez DISPLAYCONFIG_SCALING pour les définitions des valeurs DISPLAYCONFIG_SCALING_XXX .

Demande de mise à l’échelle Nomenclature abrégée utilisée dans les tableaux ci-dessous
DISPLAYCONFIG_SCALING_IDENTITY DC_IDENTITY
DISPLAYCONFIG_SCALING_CENTERED DC_CENTERED
DISPLAYCONFIG_SCALING_STRETCHED DC_STRETCHED
DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX DC_ASPECTRATIOCENTEREDMAX
DISPLAYCONFIG_SCALING_CUSTOM DC_CUSTOM
DISPLAYCONFIG_SCALING_PREFERRED DC_PREFERRED
Valeur de mise à l’échelle par défaut de l’adaptateur. Actuellement, sur les systèmes de tablette, la valeur par défaut est étendue. Sur les systèmes non-tablettes avec des cartes graphiques qui prennent en charge le modèle de pilote d’affichage Windows (WDDM), la valeur par défaut est définie par le pilote. Sur les systèmes autres que les tablettes avec des cartes graphiques qui prennent en charge WDDM avec des fonctionnalités nouvelles pour Windows 7, la valeur par défaut est DC_ASPECTRATIOCENTEREDMAX. AdapterDefault
Valeur de mise à l’échelle de la base de données pour les moniteurs connectés actuels DatabaseValue

Demandes de mise à l’échelle SetDisplayConfig

Le tableau suivant montre les valeurs qui sont enregistrées dans la base de données et les valeurs qui sont réellement définies, où :

  • « Set (same) » et « Store (same) » sont les valeurs set et store lorsque le mode source et le mode cible résultants ont la même résolution
  • « Set (different) » et « Store (different) » sont les valeurs set et store lorsque le mode source et le mode cible résultants ont des résolutions différentes
Indicateur de mise à l’échelle passé à SetDisplayConfig Définir (identique) Store (identique) Set (différent) Set (différent)
DC_IDENTITY la configuration actuelle n’est pas dans la base de données DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_IDENTITY configuration actuelle dans la base de données DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue
DC_CENTERED DC_IDENTITY DC_CENTERED DC_CENTERED DC_CENTERED
DC_STRETCHED DC_IDENTITY DC_STRETCHED DC_STRETCHED DC_STRETCHED
DC_ASPECTRATIOCENTEREDMAX sur WDDM avec le pilote de fonctionnalités Windows 7 DC_IDENTITY DC_ASPRATIOMAX DC_ASPRATIOMAX DC_ASPRATIOMAX
DC_ASPECTRATIOCENTEREDMAX sur le pilote WDDM DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_CUSTOM sur WDDM avec le pilote de fonctionnalités Windows 7 qui prend en charge la mise à l’échelle personnalisée sur le chemin d’accès DC_CUSTOM DC_CUSTOM DC_CUSTOM DC_CUSTOM
DC_CUSTOM sur WDDM avec le pilote de fonctionnalités Windows 7 qui ne prend pas en charge la mise à l’échelle personnalisée sur le chemin d’accès DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_CUSTOM sur le pilote WDDM DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_PREFERRED configuration actuelle non dans base de données DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_PREFERRED configuration actuelle dans la base de données DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

Demandes de mise à l’échelle ChangeDisplaySettingsEx héritées

Le tableau suivant montre comment la mise à l’échelle qu’un appelant peut passer à l’API ChangeDisplaySettingsEx héritée est mappée au groupe de mise à l’échelle, où :

  • « Set (same) » et « Store (same) » sont les valeurs définies et de stockage lorsque le mode source et le mode cible résultant ont la même résolution
  • « Set (different) » et « Store (different) » sont les valeurs set et store lorsque le mode source et le mode cible résultant ont des résolutions différentes
Indicateur de mise à l’échelle passé à ChangeDisplaySettingsEx Définir (identique) Stocker (identique) Set (différent) Set (différent)
DMDFO_DEFAULT avec la configuration actuelle non dans la base de données CCD DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DMDFO_DEFAULT avec la configuration actuelle dans la base de données CCD DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue
DMDFO_STRETCH DC_IDENTITY DC_STRETCHED DC_STRETCHED DC_STRETCHED
DMDFO_CENTER DC_IDENTITY DC_CENTERED DC_CENTERED DC_CENTERED
DM_DISPLAYFIXEDOUTPUT pas défini, la configuration actuelle n’est pas dans la base de données CCD DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DM_DISPLAYFIXEDOUTPUT pas défini, configuration actuelle dans la base de données CCD DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

Traduction de mise à l’échelle d’EnumDisplaySettings héritée

Le tableau suivant montre comment la mise à l’échelle de la configuration d’affichage est traduite et retournée à partir d’EnumDisplaySettings.

Mise à l’échelle active actuelle Valeurs de mise à l’échelle GDI retournées à partir d’EnumDisplaySettings(ENUM_CURRENT_SETTINGS) héritées
DC_IDENTITY DMDFO_DEFAULT
DC_CENTERED DMDFO_CENTER
DC_STRETCHED DMDFO_STRETCH
DC_ASPRATIOMAX DMDFO_DEFAULT
DC_CUSTOM DMDFO_DEFAULT
DC_PREFERRED DMDFO_DEFAULT

Jeux DirectX et mise à l’échelle

Microsoft DirectX 9L et les runtimes antérieurs nécessitent que les applications appellent toujours la fonction ChangeDisplaySettingsEx sans DM_DISPLAYFIXEDOUTPUT définie dans le membre dmFields de la structure DEVMODE vers laquelle pointe le paramètre lpDevMode . Les runtimes DirectX 10 et versions ultérieures permettent aux applications de choisir la mise à l’échelle que ces applications passent à ChangeDisplaySettingsEx. Le tableau suivant montre le mappage des valeurs de mise à l’échelle aux indicateurs de mise à l’échelle passés à ChangeDisplaySettingsEx.

Valeur de mise à l’échelle de la chaîne inversée DXGI Indicateurs de mise à l’échelle passés à ChangeDisplaySettingsEx
DXGI_MODE_SCALING_UNSPECIFIED DMDFO_DEFAULT, DMDFO_CENTER ou DMDFO_STRETCH. La mise à l’échelle utilisée par les applications dépend de plusieurs facteurs, notamment la mise à l’échelle actuelle du bureau et la liste des modes exposée par le pilote.
DXGI_MODE_SCALING_CENTERED DMDFO_CENTER
DXGI_MODE_SCALING_STRETCHED DMDFO_STRETCH

En utilisant ces informations en combinaison avec les tables de mise à l’échelle précédentes, vous pouvez déterminer la mise à l’échelle attendue à partir d’une application DirectX.