![]() |
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 |
Public Member Functions inherited from platf::dxgi::display_base_t | |
| 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 |
Public Member Functions inherited from platf::display_t | |
| 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 |
Public Attributes inherited from platf::dxgi::display_base_t | |
| 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 |
Public Attributes inherited from platf::display_t | |
| int | env_height |
| int | env_width |
| int | height |
| int | offset_x |
| int | offset_y |
| int | width |
Additional Inherited Members | |
Public Types inherited from platf::dxgi::display_base_t | |
| 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) |
Public Types inherited from platf::display_t | |
| 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. | |
Protected Member Functions inherited from platf::dxgi::display_base_t | |
| 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 |
Protected Attributes inherited from platf::display_t | |
| 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.