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.
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.
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.
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.