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