summaryrefslogtreecommitdiff
path: root/vdagent
diff options
context:
space:
mode:
authorYuri Benditovich <yuri.benditovich@daynix.com>2019-03-08 11:15:50 +0200
committerFrediano Ziglio <fziglio@redhat.com>2019-03-08 11:43:16 +0000
commit12a8f08f3294162ede41c53afd8d35213f115878 (patch)
tree6dacd43b498d901f8320368807ee1f637294fed4 /vdagent
parent6e159118b2318779b0288a1b248ba8aab054d192 (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.cpp17
-rw-r--r--vdagent/display_configuration.h1
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;