Atualização de plataforma para Windows 7
Este tópico descreve melhorias nos componentes da pilha de elementos gráficos do Windows 7 que ficam disponíveis por meio do Platform Update para Windows 7.
Quando instalado no Windows 7, o Platform Update para Windows 7 atualiza o Windows 7 com a funcionalidade disponível no Windows 8. Por exemplo, esses componentes Windows 8 ficam disponíveis com a funcionalidade completa:
- Direct2D 1.1 (incluindo efeitos de Direct2D)
- DirectWrite
- Windows Imaging Component (WIC)
Elas fornecem funcionalidade parcial:
- Direct3D 11.1
- DXGI 1.2
E, por exemplo, esse componente não está disponível:
- DirectComposition (DComp)
Consulte estes tópicos para obter informações sobre Direct2D, DirectWrite e WIC com a atualização da plataforma:
- Novidades no Direct2D para Windows 8 (Windows)
- Novidades no DirectWrite para Windows 8 (Windows)
- Novidades do WIC no Windows 8 (Windows)
Consulte estes tópicos para obter informações sobre Direct3D e DXGI com a atualização da plataforma:
Depois que a atualização da plataforma for instalada, as interfaces introduzidas no Direct3D11.1 e no DXGI 1.2 estarão disponíveis com funcionalidade parcial. Os recursos desses componentes gráficos estão vinculados diretamente aos componentes gráficos do kernel, aos drivers gráficos e ao hardware gráfico. Antes de usar o Direct3D11.1 no Windows 7, familiarize-se com estas especificidades:
Windows 8 introduziu o modelo de driver WDDM 1.2, que forneceu melhorias na superfície de API associada para todos os níveis de recursos. Ao ler a documentação do Direct3D11.1, entenda que novos drivers significam drivers WDDM 1.2. Essas versões de driver atualizadas, bem como a maioria dos recursos opcionais expostos por meio do CheckFeatureSupport, não estão disponíveis no Windows 7. Como não há garantia de que esses recursos opcionais estão disponíveis, verifique se os aplicativos têm comportamentos de fallback apropriados caso a funcionalidade desejada não esteja disponível.
Há uma exceção importante. Vários recursos, como PSSetConstantBuffers1 com deslocamentos constantes de buffer, exigem novos drivers para o nível de recurso 10 e superior, mas na verdade são emulados para o nível de recurso 9. Essa emulação está disponível no Windows 7 com a atualização da plataforma. Consulte D3D11_FEATURE_DATA_D3D11_OPTIONS para obter mais informações sobre quais recursos são emulados.
O Windows 8 modelo de driver WDDM 1.2 dá suporte a uma nova geração de hardware, exposta por meio do nível de recurso D3D 11.1. O Windows 7 com a atualização de plataforma dá suporte apenas ao modelo de driver WDDM 1.1 e, portanto, o suporte a hardware de nível de recurso 11.1 não está disponível (por meio da atualização da plataforma). No Windows 7 com a atualização da plataforma, D3D11CreateDevice sempre retorna um nível de recurso 11.0 ou inferior, exceto com um dispositivo de referência que pode ser usado para testar um caminho de código 11.1 no Windows 7. Use apenas os recursos disponíveis em seus níveis de recurso de destino, conforme descrito na referência de nível de recurso.
Alguns novos métodos introduzidos no DGXI 1.2 não têm suporte total com o Platform Update para Windows 7.Você pode testar a disponibilidade dessas funções chamando-as diretamente e verificando se há um código de erro. Verifique se os aplicativos direcionados ao Windows 7 com a atualização da plataforma têm um fallback quando a funcionalidade desejada não estiver disponível. Essas classes de recursos não estão disponíveis no Platform Update para Windows 7:
- Estéreo
- Swapchains não direcionando Hwnds
- Notificações de status de oclusão
- Duplicação da área de trabalho
- Lidar com recursos do NT
Especificamente, as seguintes APIs retornarão DXGI_ERROR_UNSUPPORTED, DXGI_ERROR_INVALID_CALL, E_NOTIMPL ou E_INVALIDARG:
- IDXGIFactory2::CreateSwapChainForCoreWindow
- IDXGIFactory2::CreateSwapChainForComposition
- IDXGIFactory2::RegisterStereoStatusWindow
- IDXGIFactory2::RegisterStereoStatusEvent
- IDXGIFactory2::UnregisterStereoStatus
- IDXGIFactory2::RegisterOcclusionStatusWindow
- IDXGIFactory2::RegisterOcclusionStatusEvent
- IDXGIFactory2::UnregisterOcclusionStatus
- IDXGISwapChain1::GetCoreWindow
- IDXGISwapChain1::SetRotation
- IDXGISwapChain1::GetRotation
- IDXGIOutput1::DuplicateOutput
- IDXGIDevice2::EnqueueSetEvent
- IDXGIResource1::CreateSharedHandle
- IDXGIFactory2::GetSharedResourceAdapterLuid
- ID3D11Device1::OpenSharedResource1
- ID3D11Device1::OpenSharedResourceByName
Essas APIs têm diferenças de comportamento, conforme observado:
- IDXGIFactory2::CreateSwapChainForHwnd usa uma estrutura DXGI_SWAP_CHAIN_DESC1 , que tem um campo para Dimensionamento. DXGI_SCALING_NONE não tem suporte no Windows 7 com a atualização da plataforma e faz com que CreateSwapChainForHwnd retorne DXGI_ERROR_INVALID_CALL quando chamado.
- IDXGISwapChain1::SetBackgroundColor só é útil quando definido em uma cadeia de troca usando DXGI_SCALING_NONE. Seu valor ainda é armazenado e pode ser recuperado, mas não tem efeito.
- IDXGIDisplayControl::IsStereoEnabled, IDXGIFactory2::IsWindowedStereoEnabled e IDXGISwapChain1::IsTemporaryMonoSupported todos retornam FALSE.
- IDXGIOutput1::GetDisplayModeList1 e IDXGIOutput1::FindClosestMatchingMode1 foram adicionados para facilitar os modos de exibição estéreo. Não há suporte para estéreo na Atualização de Plataforma para Windows 7, portanto, esse método é equivalente a IDXGIOutput::FindClosestMatchingMode como DXGI_MODE_DESC1. Estéreo sempre será FALSE.
- IDXGIDevice2::OfferResources e IDXGIDevice2::ReclaimResources não têm suporte na Atualização de Plataforma para Windows 7. No entanto, o runtime ainda permite que eles sejam chamados e executa a validação de que eles estão sendo usados corretamente em recursos não compartilhados.
- Os dispositivos WARP só dão suporte ao nível de recurso 11.0. Ou seja, os dispositivos WARP criados passando D3D_DRIVER_TYPE_WARP no parâmetro DriverType de D3D11CreateDevice não dão suporte a 11.1 nem dão suporte a superfícies compartilhadas.
Para desenvolvedores que trabalham atualmente em aplicativos no Microsoft Visual Studio 2010 ou anterior usando o sinalizador D3D11_CREATE_DEVICE_DEBUG , lembre-se de que as chamadas para D3D11CreateDevice falharão. Isso ocorre porque o runtime D3D11.1 agora requer D3D11_1SDKLayers.dll em vez de D3D11SDKLayers.dll. Para obter essa nova DLL (D3D11_1SDKLayers.dll), instale o SDK do Windows 8 ou o Visual Studio 2012 ou as ferramentas de depuração remota do Visual Studio 2012. Consulte a documentação camada de depuração para obter mais informações.