Compartilhar via


Números de versão do Direct3D versão 10.1

As versões 10.0 e 10.1 do Direct3D fornecem #defines que o driver de exibição do modo de usuário usa para controle de versão. O driver de exibição do modo de usuário deve examinar o membro Interface das estruturas D3D10DDIARG_OPENADAPTER, D3D10DDIARG_CREATEDEVICE e D3D10DDIARG_CALCPRIVATEDEVICESIZE que o driver recebe em chamadas para as funções OpenAdapter10, CreateDevice(D3D10) e CalcPrivateDeviceSize para determinar a versão do DDI do Direct3D compatível com o runtime do Direct3D. Os 16 bits mais significativos do membro Interface é o número da versão principal da DDI do Direct3D. Para as versões 10.0 e 10.1 do Direct3D, esse número é 10. Os 16 bits menos significativos do membro interface é a versão secundária da DDI do Direct3D. Esse valor de versão secundária é aumentado sempre que uma alteração interruptiva de DDI do Direct3D é introduzida. Esse valor de versão secundária também pode ser aumentado artificialmente para significar uma alteração de versão mais forte. O #defines associar uma versão secundária do DDI do Direct3D a um número de versão lançado (ou seja, D3D10_0 == x, D3D10_1 == y, em que y > x).

O driver de exibição do modo de usuário deve examinar apenas os 16 bits mais significativos do membro Version das estruturas D3D10DDIARG_OPENADAPTER, D3D10DDIARG_CREATEDEVICE e D3D10DDIARG_CALCPRIVATEDEVICESIZE para determinar quando o runtime do Direct3D é criado. Esse valor é aumentado manualmente sempre que há uma alteração não interruptiva de DDI do Direct3D. O driver pode depender de cada alteração de DDI sem interrupção ao longo do tempo. Portanto, o driver deve garantir que a versão de build DDI passada seja maior ou igual à *_BUILD_VERSION do driver atual e falhe se o driver for incompatível (talvez fornecendo também uma solução alternativa do registro). Os 16 bits menos significativos do membro Version são a versão de revisão DDI. Os 16 bits menos significativos da Versão normalmente são usados para casos especiais do driver com base em bugs presentes na API do Direct3D. O driver deve ter êxito na criação de todos os valores. No entanto, o driver pode alterar o comportamento dependendo de determinados valores. Você deve comparar com esses valores usando >= porque os números podem aumentar arbitrariamente devido a correções de runtime. Além disso, você não deve usar "> (versão anterior interrompida)" (em vez de ">= versão de trabalho") porque novas revisões podem aparecer com números de versão entre os dois números conhecidos e não contêm as correções necessárias. As seguintes #defines são para controle de versão do DDI do 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