![]() |
Sunshine latest
Self-hosted game stream host for Moonlight.
|
#include <src/platform/windows/display.h>
Public Member Functions | |
std::shared_ptr< img_t > | alloc_img () override |
int | complete_img (img_t *img, bool dummy) override |
int | dummy_img (img_t *img) override |
int | dummy_img (platf::img_t *img) |
std::vector< DXGI_FORMAT > | get_supported_capture_formats () override |
std::unique_ptr< avcodec_encode_device_t > | make_avcodec_encode_device (pix_fmt_e pix_fmt) override |
![]() | |
capture_e | capture (const push_captured_image_cb_t &push_captured_image_cb, const pull_free_image_cb_t &pull_free_image_cb, bool *cursor) override |
Capture a frame. | |
const char * | colorspace_to_string (DXGI_COLOR_SPACE_TYPE type) |
const char * | dxgi_format_to_string (DXGI_FORMAT format) |
virtual bool | get_hdr_metadata (SS_HDR_METADATA &metadata) override |
int | init (const ::video::config_t &config, const std::string &display_name) |
virtual bool | is_hdr () override |
![]() | |
virtual bool | is_codec_supported (std::string_view name, const ::video::config_t &config) |
Check that a given codec is supported by the display device. | |
virtual std::unique_ptr< nvenc_encode_device_t > | make_nvenc_encode_device (pix_fmt_e pix_fmt) |
Public Attributes | |
D3D11_MAPPED_SUBRESOURCE | img_info |
texture2d_t | texture |
![]() | |
adapter_t | adapter |
DXGI_FORMAT | capture_format |
int | client_frame_rate |
device_t | device |
device_ctx_t | device_ctx |
DXGI_RATIONAL | display_refresh_rate |
int | display_refresh_rate_rounded |
DXGI_MODE_ROTATION | display_rotation = DXGI_MODE_ROTATION_UNSPECIFIED |
factory1_t | factory |
D3D_FEATURE_LEVEL | feature_level |
int | height_before_rotation |
const UINT | KMTQAITYPE_WDDM_2_7_CAPS = 70 |
output_t | output |
std::unique_ptr< high_precision_timer > | timer = create_high_precision_timer() |
int | width_before_rotation |
![]() | |
int | env_height |
int | env_width |
int | height |
int | offset_x |
int | offset_y |
int | width |
Additional Inherited Members | |
![]() | |
enum | _D3DKMT_SCHEDULINGPRIORITYCLASS { D3DKMT_SCHEDULINGPRIORITYCLASS_IDLE , D3DKMT_SCHEDULINGPRIORITYCLASS_BELOW_NORMAL , D3DKMT_SCHEDULINGPRIORITYCLASS_NORMAL , D3DKMT_SCHEDULINGPRIORITYCLASS_ABOVE_NORMAL , D3DKMT_SCHEDULINGPRIORITYCLASS_HIGH , D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME } |
typedef struct platf::dxgi::display_base_t::_D3DKMT_CLOSEADAPTER | D3DKMT_CLOSEADAPTER |
typedef UINT | D3DKMT_HANDLE |
typedef struct platf::dxgi::display_base_t::_D3DKMT_OPENADAPTERFROMLUID | D3DKMT_OPENADAPTERFROMLUID |
typedef struct platf::dxgi::display_base_t::_D3DKMT_QUERYADAPTERINFO | D3DKMT_QUERYADAPTERINFO |
typedef enum platf::dxgi::display_base_t::_D3DKMT_SCHEDULINGPRIORITYCLASS | D3DKMT_SCHEDULINGPRIORITYCLASS |
typedef struct platf::dxgi::display_base_t::_D3DKMT_WDDM_2_7_CAPS | D3DKMT_WDDM_2_7_CAPS |
typedef NTSTATUS(WINAPI * | PD3DKMTCloseAdapter) (D3DKMT_CLOSEADAPTER *) |
typedef NTSTATUS(WINAPI * | PD3DKMTOpenAdapterFromLuid) (D3DKMT_OPENADAPTERFROMLUID *) |
typedef NTSTATUS(WINAPI * | PD3DKMTQueryAdapterInfo) (D3DKMT_QUERYADAPTERINFO *) |
typedef NTSTATUS(WINAPI * | PD3DKMTSetProcessSchedulingPriorityClass) (HANDLE, D3DKMT_SCHEDULINGPRIORITYCLASS) |
![]() | |
using | pull_free_image_cb_t = std::function<bool(std::shared_ptr<img_t> &img_out)> |
Get free image from pool. Calls must be synchronized. Blocks until there is free image in the pool or capture is interrupted. | |
using | push_captured_image_cb_t = std::function<bool(std::shared_ptr<img_t> &&img, bool frame_captured)> |
Callback for when a new image is ready. When display has a new image ready or a timeout occurs, this callback will be called with the image. If a frame was captured, frame_captured will be true. If a timeout occurred, it will be false. | |
![]() | |
int | get_pixel_pitch () |
virtual capture_e | release_snapshot ()=0 |
virtual capture_e | snapshot (const pull_free_image_cb_t &pull_free_image_cb, std::shared_ptr< platf::img_t > &img_out, std::chrono::milliseconds timeout, bool cursor_visible)=0 |
![]() | |
logging::time_delta_periodic_logger | sleep_overshoot_logger = {debug, "Frame capture sleep overshoot"} |
Display component for devices that use software encoders.
|
overridevirtual |
Implements platf::display_t.
|
overridevirtual |
Implements platf::dxgi::display_base_t.
|
virtual |
Implements platf::display_t.
|
overridevirtual |
Implements platf::dxgi::display_base_t.
|
overridevirtual |
Reimplemented from platf::display_t.