Обновление платформы для Windows 7
В этом разделе описываются улучшения компонентов графического стека Windows 7, которые становятся доступными с помощью обновления платформы для Windows 7.
При установке в Windows 7 обновление платформы для Windows 7 обновляет Windows 7 с функциональными возможностями, доступными в Windows 8. Например, эти компоненты Windows 8 становятся доступными с полной функциональностью:
- Direct2D 1.1 (включая эффекты Direct2D)
- DirectWrite
- Компонент образов Windows (WIC)
Они предоставляют частичные функциональные возможности:
- Direct3D 11.1
- DXGI 1.2
Например, этот компонент недоступен:
- DirectComposition (DComp)
Дополнительные сведения о Direct2D, DirectWrite и WIC см. в следующих разделах:
- Новые возможности Direct2D для Windows 8 (Windows)
- Новые возможности DirectWrite для Windows 8 (Windows)
- Новые возможности WIC в Windows 8 (Windows)
Дополнительные сведения о Direct3D и DXGI см. в следующих разделах:
После установки обновления платформы интерфейсы, представленные в Direct3D11.1 и DXGI 1.2, будут доступны с частичными функциями. Функции этих графических компонентов связаны непосредственно с компонентами графического ядра, драйверами графики и графическим оборудованием. Прежде чем использовать Direct3D11.1 в Windows 7, будьте знакомы с этими особенностями:
Windows 8 представила модель драйвера WDDM 1.2, которая обеспечила улучшения в связанной области API для всех уровней функций . При чтении документации Direct3D11.1 понять, что новых драйверов означает драйверы WDDM 1.2. Эти обновленные версии драйверов, а также большинство дополнительных функций, предоставляемых через CheckFeatureSupport, недоступны в Windows 7. Так как эти необязательные функции недоступны, убедитесь, что приложения имеют соответствующее резервное поведение в случае недоступности требуемой функциональности.
Существует одно важное исключение. Некоторые функции, такие как PSSetConstantBuffers1 с смещением буфера констант, требуют новых драйверов для уровня компонентов 10 и более поздних версий, но фактически эмулируются для уровня компонентов 9. Эта эмуляция доступна в Windows 7 с обновлением платформы. Дополнительные сведения о эмулированных функциях см. в D3D11_FEATURE_DATA_D3D11_OPTIONS.
Модель драйвера Windows 8 WDDM 1.2 поддерживает новое поколение оборудования, которое предоставляется на уровне компонентов D3D 11.1. Windows 7 с обновлением платформы поддерживает только модель драйвера WDDM 1.1, поэтому поддержка оборудования уровня 11.1 недоступна (через обновление платформы). В Windows 7 с обновлением платформы D3D11CreateDevice всегда возвращает уровень компонентов 11.0 или ниже, за исключением эталонного устройства, которое можно использовать для тестирования пути кода 11.1 в Windows 7. Используйте только функции, доступные на целевых уровнях компонентов, как описано в справочнике по уровню компонентов.
Некоторые новые методы, представленные в DGXI 1.2, не полностью поддерживаются в обновлении платформы для Windows 7.Вы можете проверить доступность этих функций, вызвав их напрямую и проверив код ошибки. Убедитесь, что приложения, предназначенные для Windows 7 с обновлением платформы, имеют резервный вариант, если необходимые функции недоступны. Эти классы функций недоступны в обновлении платформы для Windows 7:
- Стерео
- Переключения, не предназначенные для Hwnds
- Уведомления о состоянии Occlusion
- Дублирование рабочего стола
- Обработка ресурсов NT
В частности, следующие API возвращают DXGI_ERROR_UNSUPPORTED, DXGI_ERROR_INVALID_CALL, E_NOTIMPL или 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::Повторяющийся
- IDXGIDevice2::EnqueueSetEvent
- IDXGIResource1::CreateSharedHandle
- IDXGIFactory2::GetSharedResourceAdapterLuid
- ID3D11Device1::OpenSharedResource1
- ID3D11Device1::OpenSharedResourceByName
Эти API имеют различия в поведении, как отмечалось:
- IDXGIFactory2::CreateSwapChainForHwnd принимает DXGI_SWAP_CHAIN_DESC1 структуру, которая имеет поле для масштабирования . DXGI_SCALING_NONE не поддерживается в Windows 7 с обновлением платформы и вызывает CreateSwapChainForHwnd возвращать DXGI_ERROR_INVALID_CALL при вызове.
- IDXGISwapChain1::SetBackgroundColor полезно только при установке в цепочке буферов с помощью DXGI_SCALING_NONE. Его значение по-прежнему хранится и может быть извлечено, но оно не имеет никакого эффекта.
- IDXGIDisplayControl::IsStereoEnabled, IDXGIFactory2::IsWindowedStereoEnabledи IDXGISwapChain1::IsTemporaryMonoSupported все возвращаемые FALSE.
- IDXGIOutput1::GetDisplayModeList1 и IDXGIOutput1::FindClosestMatchingMode1 были добавлены для упрощения режимов стерео display. Стерео не поддерживается в обновлении платформы для Windows 7, поэтому этот метод эквивалентен IDXGIOutput::FindClosestMatchingMode как DXGI_MODE_DESC1. Стерео всегда будет false.
- IDXGIDevice2::OfferResourcesи id IDXGIDevice2::ReclaimResources не поддерживаются в обновлении платформы для Windows 7. Однако среда выполнения по-прежнему позволяет вызывать их и выполнять проверку правильности их использования в не общих ресурсах.
- устройства WARP поддерживают только уровне компонентов 11.0. То есть устройства WARP, созданные путем передачи D3D_DRIVER_TYPE_WARP в параметре driverType D3D11CreateDevice не поддерживают 11.1 и не поддерживают общие поверхности.
Для разработчиков, работающих в настоящее время над приложениями в Microsoft Visual Studio 2010 или более ранних версий с помощью флага D3D11_CREATE_DEVICE_DEBUG, обратите внимание, что вызовы D3D11CreateDevice завершится ошибкой. Это связано с тем, что среда выполнения D3D11.1 теперь требует D3D11_1SDKLayers.dll вместо D3D11SDKLayers.dll. Чтобы получить эту новую библиотеку DLL (D3D11_1SDKLayers.dll), установите пакет SDK для Windows 8 или Visual Studio 2012или средства удаленной отладки Visual Studio 2012. Дополнительные сведения см. в документации по уровня отладки.