diff options
author | Yuri Benditovich <yuri.benditovich@daynix.com> | 2019-03-08 11:15:50 +0200 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2019-03-08 11:43:16 +0000 |
commit | 12a8f08f3294162ede41c53afd8d35213f115878 (patch) | |
tree | 6dacd43b498d901f8320368807ee1f637294fed4 /vdagent | |
parent | 6e159118b2318779b0288a1b248ba8aab054d192 (diff) |
introduce turn_monitor_off method of WDDM interface
Adding method 'turn_monitor_off' to WDDM interface.
It sends QXL_ESCAPE_MONITOR_CONFIG escape with zeroed
display size to qxl-wddm-dod driver.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Diffstat (limited to 'vdagent')
-rw-r--r-- | vdagent/display_configuration.cpp | 17 | ||||
-rw-r--r-- | vdagent/display_configuration.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/vdagent/display_configuration.cpp b/vdagent/display_configuration.cpp index bb2fb80..8a694aa 100644 --- a/vdagent/display_configuration.cpp +++ b/vdagent/display_configuration.cpp @@ -488,6 +488,23 @@ bool WDDMInterface::update_monitor_config(LPCTSTR device_name, DisplayMode* disp } +bool WDDMInterface::turn_monitor_off(LPCTSTR device_name) +{ + vd_printf("for %S", device_name); + if (!_send_monitors_config) { + vd_printf("do nothing as _send_monitors_config is off"); + return false; + } + + WDDMMonitorConfigEscape wddm_escape(NULL); + if (escape(device_name, &wddm_escape, sizeof(wddm_escape))) { + return true; + } + + vd_printf("%S failed", device_name); + return false; +} + LONG WDDMInterface::update_display_settings() { LONG error(0); diff --git a/vdagent/display_configuration.h b/vdagent/display_configuration.h index 7b5578e..bdf89dc 100644 --- a/vdagent/display_configuration.h +++ b/vdagent/display_configuration.h @@ -160,6 +160,7 @@ private: void close_adapter(D3D_HANDLE handle); bool escape(LPCTSTR device_name, void* data, UINT sizeData); + bool turn_monitor_off(LPCTSTR device_name); //GDI Function pointers PFND3DKMT_OPENADAPTERFROMHDC _pfnOpen_adapter_hdc; |