|
Monado OpenXR Runtime
|
Helpers for Windows 10+ direct mode code. More...
#include "math/m_rational.hpp"#include "xrt/xrt_compiler.h"#include "xrt/xrt_vulkan_includes.h"#include <winrt/Windows.Graphics.DirectX.h>#include <winrt/Windows.Devices.Display.Core.h>#include <stdint.h>#include <utility>#include <tuple>
Go to the source code of this file.
Data Structures | |
| struct | xrt::auxiliary::d3d::winrt::SystemApiCapability |
| Describes the supported Windows API features for direct mode. More... | |
Macros | |
| #define | D3D_WINRT_MAKE_STRINGIFY_CASE(WDDC_ENUM) case ::winrt::Windows::Devices::Display::Core::WDDC_ENUM: return #WDDC_ENUM |
Functions | |
| static xrt::auxiliary::math::Rational< uint32_t > | xrt::auxiliary::d3d::winrt::parseVerticalRefreshRate (const ::winrt::Windows::Devices::Display::Core::DisplayModeInfo &modeInfo) |
| bool | xrt::auxiliary::d3d::winrt::isModeAcceptable (const ::winrt::Windows::Devices::Display::Core::DisplayModeInfo &modeInfo) |
| bool | xrt::auxiliary::d3d::winrt::modeComparison (const ::winrt::Windows::Devices::Display::Core::DisplayModeInfo &lhs, const ::winrt::Windows::Devices::Display::Core::DisplayModeInfo &rhs) |
| A comparison function (like std::less) for comparing display modes, such as for sorting or finding the "best" one. | |
| static bool | xrt::auxiliary::d3d::winrt::colorSpaceFromVulkan (VkColorSpaceKHR colorSpace, ::winrt::Windows::Graphics::DirectX::DirectXColorSpace &out) |
| ::winrt::Windows::Devices::Display::Core::DisplayScanout | xrt::auxiliary::d3d::winrt::createScanout (SystemApiCapability const &capability, int maxAttempts, ::winrt::Windows::Devices::Display::Core::DisplayDevice const &device, ::winrt::Windows::Devices::Display::Core::DisplaySource const &source, ::winrt::Windows::Devices::Display::Core::DisplaySurface const &primary, uint32_t subResourceIndex, bool allowTearing) |
| Create a "scanout" object for scanning out a surface to a direct mode display. | |
| XRT_CHECK_RESULT constexpr const char * | xrt::auxiliary::d3d::winrt::to_string (::winrt::Windows::Devices::Display::Core::DisplayManagerResult e) |
| Convert Windows.Devices.Display.Core.DisplayManagerResult enum values to string. | |
| XRT_CHECK_RESULT constexpr const char * | xrt::auxiliary::d3d::winrt::to_string (::winrt::Windows::Devices::Display::Core::DisplayStateOperationStatus e) |
| Convert Windows.Devices.Display.Core.DisplayStateOperationStatus enum values to string. | |
| XRT_CHECK_RESULT constexpr const char * | xrt::auxiliary::d3d::winrt::to_string (::winrt::Windows::Devices::Display::Core::DisplayPathStatus e) |
| Convert Windows.Devices.Display.Core.DisplayPathStatus enum values to string. | |
| XRT_CHECK_RESULT constexpr const char * | xrt::auxiliary::d3d::winrt::to_string (::winrt::Windows::Devices::Display::Core::DisplayPresentStatus e) |
| Convert Windows.Devices.Display.Core.DisplayPresentStatus enum values to string. | |
Helpers for Windows 10+ direct mode code.
Has to implement comp_target instead of comp_target_swapchain because we don't get a VkSurfaceKHR, etc: we manually import images instead.
| winrt::Windows::Devices::Display::Core::DisplayScanout xrt::auxiliary::d3d::winrt::createScanout | ( | SystemApiCapability const & | capability, |
| int | maxAttempts, | ||
| ::winrt::Windows::Devices::Display::Core::DisplayDevice const & | device, | ||
| ::winrt::Windows::Devices::Display::Core::DisplaySource const & | source, | ||
| ::winrt::Windows::Devices::Display::Core::DisplaySurface const & | primary, | ||
| uint32_t | subResourceIndex, | ||
| bool | allowTearing | ||
| ) |
Create a "scanout" object for scanning out a surface to a direct mode display.
The underlying function CreateSimpleScanout is prone to spurious IllegalArgument failures, so this wrapper tries twice.
See https://github.com/MicrosoftDocs/winrt-api/issues/1942
| capability | A populated SystemApiCapability describing the features available and allowed for use. |
| maxAttempts | The maximum number of times to try creating a scanout: consider at least 2, since this is prone to spurious failure |
| device | Display device |
| source | Display source |
| primary | Primary display surface |
| subResourceIndex | as in CreateSimpleScanout. Usually 0 unless you are using hardware stereo (like 3D TV) |
| allowTearing | determines the sync interval value in Win10 and Win11, and the flags to create the scanout in Win11. |
References xrt::auxiliary::d3d::winrt::createScanout(), and xrt::auxiliary::d3d::winrt::SystemApiCapability::supportsScanoutOptionsAndTryExecuteTask.
Referenced by xrt::auxiliary::d3d::winrt::createScanout().
| bool xrt::auxiliary::d3d::winrt::modeComparison | ( | const ::winrt::Windows::Devices::Display::Core::DisplayModeInfo & | lhs, |
| const ::winrt::Windows::Devices::Display::Core::DisplayModeInfo & | rhs | ||
| ) |
A comparison function (like std::less) for comparing display modes, such as for sorting or finding the "best" one.
This sorts with SRGB modes first, and refresh rate in decreasing order.
References xrt::auxiliary::d3d::winrt::makeModeKey(), and xrt::auxiliary::d3d::winrt::modeComparison().
Referenced by xrt::auxiliary::d3d::winrt::modeComparison().
|
constexpr |
Convert Windows.Devices.Display.Core.DisplayManagerResult enum values to string.
References xrt::auxiliary::d3d::winrt::to_string().
Referenced by xrt::auxiliary::d3d::winrt::to_string(), xrt::auxiliary::d3d::winrt::to_string(), xrt::auxiliary::d3d::winrt::to_string(), and xrt::auxiliary::d3d::winrt::to_string().
|
constexpr |
Convert Windows.Devices.Display.Core.DisplayPathStatus enum values to string.
References xrt::auxiliary::d3d::winrt::to_string().
|
constexpr |
Convert Windows.Devices.Display.Core.DisplayPresentStatus enum values to string.
References xrt::auxiliary::d3d::winrt::to_string().
|
constexpr |
Convert Windows.Devices.Display.Core.DisplayStateOperationStatus enum values to string.
References xrt::auxiliary::d3d::winrt::to_string().