Ridimensionamento dell'immagine desktop

Questo argomento si applica solo a Windows 7 e versioni successive e Windows Server 2008 R2 e versioni successive del sistema operativo Windows.

Modalità di funzionamento del ridimensionamento

Un chiamante può usare la funzione SetDisplayConfig Connecting and Configureing Display (CCD) per ridimensionare l'immagine desktop nel monitoraggio:

  • Se il desktop e il monitoraggio usano la stessa risoluzione, SetDisplayConfig non è necessario per ridimensionare l'immagine desktop nel monitoraggio. Questa operazione SetDisplayConfig è nota come scalabilità delle identità.

  • Se la risoluzione del desktop e del monitoraggio è diversa, SetDisplayConfig applica uno dei tipi di ridimensionamento seguenti. La risoluzione del monitoraggio è definita dalla struttura DISPLAYCONFIG_TARGET_MODE .

    • Ridimensionamento centrato

      Il ridimensionamento centrato è una modalità in cui il desktop viene visualizzato sul monitor senza alcun ridimensionamento. Quando SetDisplayConfig applica il ridimensionamento centrato, le bande nere potrebbero essere visibili sopra e sotto il desktop. La figura seguente mostra il ridimensionamento centrato.

      Diagramma che mostra il ridimensionamento centrato con bande nere sopra e sotto il desktop.

    • Ridimensionamento esteso

      Il ridimensionamento esteso è una modalità in cui il desktop è orizzontalmente e verticalmente esteso sul monitor per assicurarsi che venga usato l'intero display. Quando SetDisplayConfig applica il ridimensionamento esteso, non sono visibili bande nere sopra e sotto il desktop. Tuttavia, il desktop potrebbe essere distorto. Nella figura seguente viene illustrato il ridimensionamento esteso.

      Diagramma che mostra il ridimensionamento esteso con il desktop che riempie l'intero display.

    • Aspetto-rapporto-conservazione estesa

      Il ridimensionamento esteso in rapporto ad aspetto è una modalità in cui il desktop è esteso orizzontalmente e verticalmente il più possibile mantenendo la proporzioni. Quando SetDisplayConfig applica il ridimensionamento esteso a rapporto di aspetto, le bande nere potrebbero essere visibili sopra e sotto o a sinistra e destra del desktop. Tuttavia, le bande nere non possono essere visibili sia sopra che sotto esinistra e destra del desktop. Poiché gli utenti devono preferire questo tipo di ridimensionamento, SetDisplayConfig applica questo tipo di ridimensionamento come impostazione predefinita. La figura seguente mostra il ridimensionamento esteso di proporzioni.

      Diagramma che mostra il ridimensionamento esteso con proporzioni con scalabilità estesa con bande nere sul lato o sopra e sotto il desktop.

Il ridimensionamento dipende dalle modalità di origine e di destinazione usate per un percorso. Inoltre, il chiamante può chiamare SetDisplayConfig senza specificare le informazioni sulla modalità di destinazione, ovvero l'impostazione del parametro modeInfoArray è facoltativa e può essere impostata su NULL. Ciò significa che il chiamante non può in genere prevedere se SetDisplayConfig deve eseguire qualsiasi ridimensionamento. Inoltre, nessuna API esiste per ottenere l'elenco completo dei tipi di ridimensionamento supportati dalla scheda grafica. La funzione EnumDisplaySettings Win32 restituisce DMDFO_DEFAULT nel membro dmDisplayFixedOutput della struttura DEVMODE a cui punta il parametro lpDevMode quando il chiamante richiede i tipi di ridimensionamento di Windows 7.

Il ridimensionamento che un chiamante passa a SetDisplayConfig è una finalità di ridimensionamento anziché una richiesta esplicita per eseguire un'operazione di ridimensionamento. Se il ridimensionamento è necessario (ad esempio, le risoluzioni di origine e di destinazione differiscono), SetDisplayConfig usa il ridimensionamento fornito dal chiamante. Se il ridimensionamento fornito non è supportato, SetDisplayConfig usa il ridimensionamento predefinito della scheda grafica. Quando le risoluzioni di origine e destinazione passate dal chiamante a SetDisplayConfig sono uguali, SetDisplayConfig imposta sempre il ridimensionamento delle identità.

Scaling requests (Richieste di ridimensionamento)

La tabella seguente mostra le diverse richieste di ridimensionamento SetDisplayConfig e identifica la denominazione abbreviata utilizzata nelle tabelle riportate nelle sezioni secondarie seguenti. Vedere DISPLAYCONFIG_SCALING per le definizioni dei valori DISPLAYCONFIG_SCALING_XXX .

Richiesta di ridimensionamento Denominazione abbreviata usata nelle tabelle seguenti
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
Valore di ridimensionamento predefinito dell'adattatore. Attualmente, nei sistemi tablet, il valore predefinito è esteso. Nei sistemi non tablet con schede grafiche che supportano windows Display Driver Model (WDDM), il valore predefinito è definito dal driver. Nei sistemi non tablet con schede grafiche che supportano WDDM con funzionalità nuove per Windows 7, il valore predefinito è DC_ASPECTRATIOCENTEREDMAX. AdapterDefault
Valore di ridimensionamento dal database per i monitoraggi connessi correnti DatabaseValue

Richieste di ridimensionamento setDisplayConfig

La tabella seguente mostra i valori salvati nel database e i valori effettivamente impostati, dove:

  • "Set (same)" e "Store (same)" sono i valori impostati e archiviano i valori quando la modalità di origine risultante e la modalità di destinazione hanno la stessa risoluzione
  • "Set (different)" e "Store (different)" sono i valori impostati e archiviati quando la modalità di origine risultante e la modalità di destinazione hanno risoluzioni diverse
Flag di ridimensionamento passato a SetDisplayConfig Imposta (stesso) Store (stesso) Impostare (diverso) Impostare (diverso)
DC_IDENTITY configurazione corrente non nel database DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_IDENTITY configurazione corrente nel database 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 in WDDM con driver di funzionalità di Windows 7 DC_IDENTITY DC_ASPRATIOMAX DC_ASPRATIOMAX DC_ASPRATIOMAX
DC_ASPECTRATIOCENTEREDMAX nel driver WDDM DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_CUSTOM in WDDM con driver di funzionalità di Windows 7 che supportano la scalabilità personalizzata nel percorso DC_CUSTOM DC_CUSTOM DC_CUSTOM DC_CUSTOM
DC_CUSTOM in WDDM con driver di funzionalità di Windows 7 che non supportano la scalabilità personalizzata nel percorso DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_CUSTOM nel driver WDDM DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_PREFERRED configurazione corrente non nel database DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_PREFERRED configurazione corrente nel database DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

Richieste di scalabilità legacy ChangeDisplaySettingsEx

La tabella seguente illustra come il ridimensionamento che un chiamante può passare all'API ChangeDisplaySettingsEx legacy mappa al set di scalabilità, dove:

  • "Set (same)" e "Store (same)" sono i valori impostati e archiviano i valori quando la modalità di origine risultante e la modalità di destinazione hanno la stessa risoluzione
  • "Set (different)" e "Store (different)" sono i valori impostati e archiviati quando la modalità di origine risultante e la modalità di destinazione hanno risoluzioni diverse
Flag di ridimensionamento passato a ChangeDisplaySettingsEx Imposta (stesso) Store (stesso) Impostare (diverso) Impostare (diverso)
DMDFO_DEFAULT con la configurazione corrente non nel database CCD DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DMDFO_DEFAULT con la configurazione corrente nel database 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 non impostato, la configurazione corrente non nel database CCD DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DM_DISPLAYFIXEDOUTPUT non impostato, configurazione corrente nel database CCD DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

Traduzione di scalabilità legacy EnumDisplaySettings

Nella tabella seguente viene illustrato il modo in cui il ridimensionamento della configurazione di visualizzazione viene convertito e restituito da EnumDisplaySettings.

Ridimensionamento attivo corrente Valori di ridimensionamento GDI restituiti da EnumDisplaySettings(ENUM_CURRENT_SETTINGS) legacy
DC_IDENTITY DMDFO_DEFAULT
DC_CENTERED DMDFO_CENTER
DC_STRETCHED DMDFO_STRETCH
DC_ASPRATIOMAX DMDFO_DEFAULT
DC_CUSTOM DMDFO_DEFAULT
DC_PREFERRED DMDFO_DEFAULT

Giochi DirectX e scalabilità

I runtime microsoft DirectX 9L e precedenti richiedono che le applicazioni chiamino sempre la funzione ChangeDisplaySettingsEx senza DM_DISPLAYFIXEDOUTPUT impostata nel membro dmFields della struttura DEVMODE a cui punta il parametro lpDevMode . DirectX 10 e versioni successive consentono alle applicazioni di scegliere il ridimensionamento passato a ChangeDisplaySettingsEx. Nella tabella seguente viene illustrato il mapping dei valori di ridimensionamento ai flag di ridimensionamento passati a ChangeDisplaySettingsEx.

Valore di ridimensionamento della catena di scorrimento DXGI Ridimensionamento dei flag passati a ChangeDisplaySettingsEx
DXGI_MODE_SCALING_UNSPECIFIED DMDFO_DEFAULT, DMDFO_CENTER o DMDFO_STRETCH. Il ridimensionamento usato dalle applicazioni dipende da diversi fattori, che includono il ridimensionamento del desktop corrente e l'elenco di modalità esposto dal driver.
DXGI_MODE_SCALING_CENTERED DMDFO_CENTER
DXGI_MODE_SCALING_STRETCHED DMDFO_STRETCH

Usando queste informazioni in combinazione con le tabelle di ridimensionamento precedenti, è possibile determinare il ridimensionamento previsto da un'applicazione DirectX.