|
Sunshine master
Self-hosted game stream host for Moonlight.
|
Definitions for the Windows display base code. More...
#include <cmath>#include <thread>#include <initguid.h>#include <boost/algorithm/string/join.hpp>#include <boost/process/v1.hpp>#include <MinHook.h>#include "utf_utils.h"#include "display.h"#include "misc.h"#include "src/config.h"#include "src/display_device.h"#include "src/logging.h"#include "src/platform/common.h"#include "src/video.h"Typedefs | |
| typedef enum _D3DKMT_GPU_PREFERENCE_QUERY_STATE | D3DKMT_GPU_PREFERENCE_QUERY_STATE |
| Enumerates supported d3 DKMT GPU PREFERENCE QUERY STATE options. | |
| typedef long | NTSTATUS |
| Windows NT status code returned by native APIs. | |
Enumerations | |
| enum | _D3DKMT_GPU_PREFERENCE_QUERY_STATE : DWORD { D3DKMT_GPU_PREFERENCE_STATE_UNINITIALIZED , D3DKMT_GPU_PREFERENCE_STATE_HIGH_PERFORMANCE , D3DKMT_GPU_PREFERENCE_STATE_MINIMUM_POWER , D3DKMT_GPU_PREFERENCE_STATE_UNSPECIFIED , D3DKMT_GPU_PREFERENCE_STATE_NOT_FOUND , D3DKMT_GPU_PREFERENCE_STATE_USER_SPECIFIED_GPU } |
| Enumerates supported d3 DKMT GPU PREFERENCE QUERY STATE options. More... | |
Functions | |
| std::shared_ptr< display_t > | platf::display (mem_type_e hwdevice_type, const std::string &display_name, const video::config_t &config) |
| Get the display_t instance for the given hwdevice_type. If display_name is empty, use the first monitor that's compatible you can find If you require to use this parameter in a separate thread, make a copy of it. | |
| std::vector< std::string > | platf::display_names (mem_type_e hwdevice_type) |
| List display names accepted by the selected capture backend. | |
| bool | platf::needs_encoder_reenumeration () |
| Check if GPUs/drivers have changed since the last call to this function. | |
| NTSTATUS __stdcall | platf::dxgi::NtGdiDdDDIGetCachedHybridQueryValueHook (D3DKMT_GPU_PREFERENCE_QUERY_STATE *gpuPreference) |
| Hook for NtGdiDdDDIGetCachedHybridQueryValue() from win32u.dll. | |
| bool | platf::dxgi::test_dxgi_duplication (adapter_t &adapter, output_t &output, bool enumeration_only) |
| Tests to determine if the Desktop Duplication API can capture the given output. | |
Definitions for the Windows display base code.
Enumerates supported d3 DKMT GPU PREFERENCE QUERY STATE options.
Alias for D3 DKMT GPU PREFERENCE QUERY STATE.
| enum _D3DKMT_GPU_PREFERENCE_QUERY_STATE : DWORD |
Enumerates supported d3 DKMT GPU PREFERENCE QUERY STATE options.
| std::shared_ptr< display_t > platf::display | ( | platf::mem_type_e | hwdevice_type, |
| const std::string & | display_name, | ||
| const video::config_t & | config ) |
Get the display_t instance for the given hwdevice_type. If display_name is empty, use the first monitor that's compatible you can find If you require to use this parameter in a separate thread, make a copy of it.
| display_name | The name of the monitor that SHOULD be displayed |
| config | Stream configuration |
Pick a display adapter and capture method.
| hwdevice_type | enables possible use of hardware encoder |
| std::vector< std::string > platf::display_names | ( | mem_type_e | hwdevice_type | ) |
List display names accepted by the selected capture backend.
| hwdevice_type | Hardware device type requested for capture or encode. |
| bool platf::needs_encoder_reenumeration | ( | ) |
Check if GPUs/drivers have changed since the last call to this function.
Check whether DXGI reports that adapter or driver enumeration is stale.
Report whether encoder backends should be probed again before streaming.
true if a change has occurred or if it is unknown whether a change occurred.true because Linux GPU changes are not tracked by this backend.true because macOS GPU changes are not tracked by this backend. | NTSTATUS __stdcall platf::dxgi::NtGdiDdDDIGetCachedHybridQueryValueHook | ( | D3DKMT_GPU_PREFERENCE_QUERY_STATE * | gpuPreference | ) |
Hook for NtGdiDdDDIGetCachedHybridQueryValue() from win32u.dll.
| gpuPreference | A pointer to the location where the preference will be written. |
| bool platf::dxgi::test_dxgi_duplication | ( | adapter_t & | adapter, |
| output_t & | output, | ||
| bool | enumeration_only ) |
Tests to determine if the Desktop Duplication API can capture the given output.
When testing for enumeration only, we avoid resyncing the thread desktop.
| adapter | The DXGI adapter to use for capture. |
| output | The DXGI output to capture. |
| enumeration_only | Specifies whether this test is occurring for display enumeration. |