![]() |
Sunshine latest
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 "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 |
typedef long | NTSTATUS |
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) |
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.
enum _D3DKMT_GPU_PREFERENCE_QUERY_STATE : DWORD |
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 |
bool platf::needs_encoder_reenumeration | ( | ) |
Check if GPUs/drivers have changed since the last call to this function.
Returns if GPUs/drivers have changed since the last call to this function.
true
if a change has occurred or if it is unknown whether a change occurred. 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. |