Condividi tramite


Numeri di versione per Direct3D versione 10.1

Le versioni Direct3D 10.0 e 10.1 forniscono #defines che il driver di visualizzazione in modalità utente usa per il controllo delle versioni. Il driver di visualizzazione in modalità utente deve esaminare il membro Interface del D3D10DDIARG_OPENADAPTER, D3D10DDIARG_CREATEDEVICE e D3D10DDIARG_CALCPRIVATEDEVICESIZE strutture che il driver riceve nelle chiamate a OpenAdapter10, CreateDevice(D3D10) e le funzioni CalcPrivateDeviceSize per determinare la versione di Direct3D DDI supportata dal runtime Direct3D. I 16 bit più significativi del membro Interface sono il numero della versione principale di Direct3D DDI. Per Direct3D versioni 10.0 e 10.1, questo numero è 10. I 16 bit meno significativi del membro Interface sono la versione secondaria direct3D DDI. Questo valore di versione secondaria viene incrementato ogni volta che viene introdotta una modifica DDI Direct3D. Questo valore di versione secondaria può anche essere battato in modo artificiale per firmare una modifica più forte della versione. L'#defines seguente associa una versione secondaria direct3D DDI a un numero di versione rilasciato, ovvero D3D10_0 == x, D3D10_1 == y, dove y > x).

Il driver di visualizzazione in modalità utente deve esaminare solo i 16 bit più significativi del membro Version del D3D10DDIARG_OPENADAPTER, D3D10DDIARG_CREATEDEVICEe D3D10DDIARG_CALCPRIVATEDEVICESIZE strutture per determinare quando viene compilato il runtime Direct3D. Questo valore viene generato manualmente ogni volta che si verifica una modifica DDI Direct3D non di rilievo. Il driver potrebbe dipendere da ogni modifica DDI non di rilievo nel tempo. Pertanto, il driver deve assicurarsi che la versione di compilazione DDI passata sia maggiore o uguale a *_BUILD_VERSION del driver corrente e non riesce se il driver è incompatibile (forse fornendo anche una soluzione alternativa al Registro di sistema). I 16 bit meno significativi del membro Version sono la versione di revisione DDI. I 16 bit meno significativi della versione vengono in genere usati per specificare il driver in base ai bug presenti nell'API Direct3D. Il driver deve avere esito positivo per la creazione di tutti i valori. Tuttavia, il driver può modificare il comportamento a seconda di determinati valori. È consigliabile confrontare con questi valori usando = >perché i numeri potrebbero aumentare arbitrariamente a causa delle correzioni di runtime. Inoltre, non è consigliabile usare " (versione interrotta precedente)" (anziché ">>= versione funzionante") perché le nuove revisioni potrebbero essere visualizzate con numeri di versione tra i due numeri noti e non contengono le correzioni necessarie. I #defines seguenti sono per il controllo delle versioni DDI Direct3D:

#define D3D10_DDI_MAJOR_VERSION 10
#define D3D10_0_DDI_MINOR_VERSION 1
#define D3D10_0_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_0_DDI_MINOR_VERSION)
#define D3D10_0_DDI_BUILD_VERSION 4
#define D3D10_0_DDI_VERSION_VISTA_GOLD                          ( ( 4 << 16 ) | 6000 )
#define D3D10_0_DDI_VERSION_VISTA_GOLD_WITH_LINKED_ADAPTER_QFE  ( ( 4 << 16 ) | 6008 )
#define D3D10_0_DDI_IS_LINKED_ADAPTER_QFE_PRESENT(Version)  (Version >= D3D10_0_DDI_VERSION_VISTA_GOLD_WITH_LINKED_ADAPTER_QFE)

#if D3D10DDI_MINOR_HEADER_VERSION >= 1
#define D3D10_1_DDI_MINOR_VERSION 2
#define D3D10_1_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_1_DDI_MINOR_VERSION)
#define D3D10_1_DDI_BUILD_VERSION 1
// Note: d3d10_1 doesn't currently ship on vista gold. // This definition is included for completeness in the 
// event that it does at some point in the future:
#define D3D10_1_DDI_VERSION_VISTA_GOLD                          ( ( 1 << 16 ) | 6000 )
#define D3D10_1_DDI_VERSION_VISTA_SP1                           ( ( 1 << 16 ) | 6008 )
#define D3D10_1_DDI_IS_LINKED_ADAPTER_QFE_PRESENT(Version)  (Version >= D3D10_1_DDI_VERSION_VISTA_SP1)

#define D3D10on9_DDI_MINOR_VERSION 0
#define D3D10on9_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10on9_DDI_MINOR_VERSION)
#define D3D10on9_DDI_BUILD_VERSION 0