Aktualizacja platformy dla systemu Windows 7
W tym temacie opisano ulepszenia składników stosu grafiki systemu Windows 7, które stają się dostępne za pośrednictwem aktualizacji platformy dla systemu Windows 7.
Po zainstalowaniu w systemie Windows 7 aktualizacja platformy dla systemu Windows 7 aktualizuje system Windows 7 z funkcjami dostępnymi w systemie Windows 8. Na przykład te składniki systemu Windows 8 stają się dostępne z pełną funkcjonalnością:
- Direct2D 1.1 (w tym efekty Direct2D)
- DirectWrite
- Składnik Windows Imaging (WIC)
Zapewniają one częściowe funkcje:
- Direct3D 11.1
- DXGI 1.2
Na przykład ten składnik jest niedostępny:
- DirectComposition (DComp)
Zapoznaj się z tymi tematami, aby uzyskać informacje na temat funkcji Direct2D, DirectWrite i WIC z aktualizacją platformy:
- Co nowego w funkcji Direct2D dla systemu Windows 8 (Windows)
- Co nowego w funkcji DirectWrite dla systemu Windows 8 (Windows)
- co nowego w usłudze WIC w systemie Windows 8 (Windows)
Zapoznaj się z tymi tematami, aby uzyskać informacje na temat direct3D i DXGI z aktualizacją platformy:
Po zainstalowaniu aktualizacji platformy interfejsy wprowadzone w usługach Direct3D11.1 i DXGI 1.2 będą dostępne z częściowymi funkcjami. Funkcje tych składników graficznych są powiązane bezpośrednio ze składnikami jądra grafiki, sterownikami graficznymi i sprzętem graficznym. Przed rozpoczęciem korzystania z direct3D11.1 w systemie Windows 7 zapoznaj się z następującymi specyfikami:
System Windows 8 wprowadził model sterowników WDDM 1.2, który zapewniał ulepszenia na skojarzonej powierzchni interfejsu API dla wszystkich poziomów funkcji . Podczas czytania dokumentacji Direct3D11.1 należy zrozumieć, że nowych sterowników oznacza sterowniki WDDM 1.2. Te zaktualizowane wersje sterowników, a także większość opcjonalnych funkcji udostępnianych za pośrednictwem CheckFeatureSupport, są niedostępne w systemie Windows 7. Ponieważ nie ma gwarancji, że te funkcje opcjonalne są dostępne, upewnij się, że aplikacje mają odpowiednie zachowania rezerwowe w przypadku niedostępności żądanej funkcjonalności.
Istnieje jeden ważny wyjątek. Kilka funkcji, takich jak PSSetConstantBuffers1 ze stałymi przesunięciami buforu, wymagają nowych sterowników dla poziomu funkcji 10 i wyższych, ale są rzeczywiście emulowane dla poziomu funkcji 9. Ta emulacja jest dostępna w systemie Windows 7 z aktualizacją platformy. Zobacz D3D11_FEATURE_DATA_D3D11_OPTIONS, aby uzyskać więcej informacji o tym, które funkcje są emulowane.
Model sterowników systemu Windows 8 WDDM 1.2 obsługuje nową generację sprzętu, uwidacznianą za pośrednictwem poziomu funkcji D3D 11.1. System Windows 7 z aktualizacją platformy obsługuje tylko model sterowników WDDM 1.1 i dlatego obsługa sprzętu na poziomie 11.1 nie jest dostępna (za pośrednictwem aktualizacji platformy). W systemie Windows 7 z aktualizacją platformy D3D11CreateDevice zawsze zwraca poziom funkcji 11.0 lub niższy, z wyjątkiem urządzenia odniesienia, którego można użyć do przetestowania ścieżki kodu 11.1 w systemie Windows 7. Używaj tylko funkcji dostępnych na docelowych poziomach funkcji, zgodnie z opisem w dokumentacji na poziomie funkcji.
Niektóre nowe metody wprowadzone w dgXI 1.2 nie są w pełni obsługiwane za pomocą aktualizacji platformy dla systemu Windows 7.Można przetestować dostępność tych funkcji, wywołując je bezpośrednio i sprawdzając kod błędu. Upewnij się, że aplikacje przeznaczone dla systemu Windows 7 z aktualizacją platformy mają rezerwowe miejsce, gdy wymagana funkcja jest niedostępna. Te klasy funkcji są niedostępne w aktualizacji platformy dla systemu Windows 7:
- Stereo
- Swapchains nie dotyczy Hwnds
- Powiadomienia o stanie okluzji
- Duplikowanie pulpitu
- Nt Handle resources (Obsługa zasobów NT)
W szczególności następujące interfejsy API będą zwracać DXGI_ERROR_UNSUPPORTED, DXGI_ERROR_INVALID_CALL, E_NOTIMPL lub E_INVALIDARG:
- IDXGIFactory2::CreateSwapChainForCoreWindow
- IDXGIFactory2::CreateSwapChainForComposition
- IDXGIFactory2::RegisterStereoStatusWindow
- IDXGIFactory2::RegisterStereoStatusEvent
- IDXGIFactory2::UnregisterSterStereoStatus
- IDXGIFactory2::RegisterOcclusionStatusWindow
- IDXGIFactory2::RegisterOcclusionStatusEvent
- IDXGIFactory2::UnregisterOcclusionStatus
- IDXGISwapChain1::GetCoreWindow
- IDXGISwapChain1::SetRotation
- IDXGISwapChain1::GetRotation
- IDXGIOutput1::DuplicateOutput
- IDXGIDevice2::EnqueueSetEvent
- IDXGIResource1::CreateSharedHandle
- IDXGIFactory2::GetSharedResourceAdapterLuid
- ID3D11Urządzenia1::OpenSharedResource1
- ID3D11Urządzenia1::OpenSharedResourceByName
Te interfejsy API mają różnice w zachowaniu, jak wspomniano:
- IDXGIFactory2::CreateSwapChainForHwnd przyjmuje strukturę DXGI_SWAP_CHAIN_DESC1, która ma pole dla Skalowanie. DXGI_SCALING_NONE nie jest obsługiwana w systemie Windows 7 z aktualizacją platformy i powoduje, że CreateSwapChainForHwnd zwrócić DXGI_ERROR_INVALID_CALL po wywołaniu.
- IDXGISwapChain1::SetBackgroundColor jest przydatna tylko podczas ustawiania na pęku wymiany przy użyciu DXGI_SCALING_NONE. Jego wartość jest nadal przechowywana i można ją pobrać, ale nie ma żadnego wpływu.
- IDXGIDisplayControl::IsStereoEnabled, IDXGIFactory2::IsWindowedStereoEni IDXGISwapChain1::IsTemporaryMonoSupported wszystkie zwracają FALSE.
- IDXGIOutput1:: dodanoGetDisplayModeList1 i IDXGIOutput1::FindClosestMatchingMode1 w celu ułatwienia trybów wyświetlania stereo. Stereo nie jest obsługiwane w aktualizacji platformy dla systemu Windows 7, więc ta metoda jest równoważna IDXGIOutput::FindClosestMatchingMode jako DXGI_MODE_DESC1. Stereo zawsze będzie mieć wartość FALSE.
- IDXGIDevice2::OfferResources i IDXGIDevice2::ReclaimResources nie są obsługiwane w aktualizacji platformy dla systemu Windows 7. Jednak środowisko uruchomieniowe nadal umożliwia ich wywoływanie i przeprowadza walidację, że są one prawidłowo używane w zasobach innych niż udostępnione.
- urządzenia warp obsługują tylko poziom funkcji 11.0. Oznacza to, że urządzenia WARP utworzone przez przekazanie D3D_DRIVER_TYPE_WARP w DriverType parametruD3D11CreateDevice nie obsługują wersji 11.1 ani nie obsługują udostępnionych powierzchni.
W przypadku deweloperów pracujących obecnie nad aplikacjami w programie Microsoft Visual Studio 2010 lub starszym przy użyciu flagi D3D11_CREATE_DEVICE_DEBUG należy pamiętać, że wywołania D3D11CreateDevice zakończy się niepowodzeniem. Dzieje się tak dlatego, że środowisko uruchomieniowe D3D11.1 wymaga teraz D3D11_1SDKLayers.dll zamiast D3D11SDKLayers.dll. Aby uzyskać tę nową bibliotekę DLL (D3D11_1SDKLayers.dll), zainstaluj zestaw SDK systemu Windows 8lub Visual Studio 2012lub narzędzia do zdalnego debugowania programu Visual Studio 2012. Aby uzyskać więcej informacji, zobacz dokumentację warstwy debugowania.