From c10c487a024e6736c1d98694a4d3e60feb055e89 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 13 Sep 2016 11:52:28 +0200 Subject: [PATCH] Allow shutting down the active remote server --- renderdocui/Code/RenderManager.cs | 11 ++++++++++ .../Windows/Dialogs/RemoteManager.Designer.cs | 4 +++- renderdocui/Windows/Dialogs/RemoteManager.cs | 20 +++++++++++++------ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/renderdocui/Code/RenderManager.cs b/renderdocui/Code/RenderManager.cs index fde24d565..d075a7431 100644 --- a/renderdocui/Code/RenderManager.cs +++ b/renderdocui/Code/RenderManager.cs @@ -370,8 +370,19 @@ namespace renderdocui.Code m_Remote = null; } + public void ShutdownServer() + { + if(m_Remote != null) + m_Remote.ShutdownServerAndConnection(); + + m_Remote = null; + } + public void PingRemote() { + if (m_Remote == null) + return; + if (Monitor.TryEnter(m_Remote)) { try diff --git a/renderdocui/Windows/Dialogs/RemoteManager.Designer.cs b/renderdocui/Windows/Dialogs/RemoteManager.Designer.cs index 5204a7d20..557fa0940 100644 --- a/renderdocui/Windows/Dialogs/RemoteManager.Designer.cs +++ b/renderdocui/Windows/Dialogs/RemoteManager.Designer.cs @@ -310,8 +310,10 @@ this.ClientSize = new System.Drawing.Size(602, 460); this.Controls.Add(tableLayoutPanel1); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "RemoteManager"; + this.MinimizeBox = false; + this.MaximizeBox = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Remote Host Manager"; tableLayoutPanel1.ResumeLayout(false); diff --git a/renderdocui/Windows/Dialogs/RemoteManager.cs b/renderdocui/Windows/Dialogs/RemoteManager.cs index e7dd04307..cc8b40b60 100644 --- a/renderdocui/Windows/Dialogs/RemoteManager.cs +++ b/renderdocui/Windows/Dialogs/RemoteManager.cs @@ -371,7 +371,7 @@ namespace renderdocui.Windows.Dialogs { connect.Text = "Shutdown"; - if (host.Busy || host.Connected) + if (host.Busy && !host.Connected) connect.Enabled = false; } else @@ -476,11 +476,19 @@ namespace renderdocui.Windows.Dialogs // shut down try { - RemoteServer server = StaticExports.CreateRemoteServer(host.Hostname, 0); - server.ShutdownServerAndConnection(); - hosts.BeginUpdate(); - SetRemoteServerLive(node, false, false); - hosts.EndUpdate(); + if (host.Connected) + { + m_Core.Renderer.ShutdownServer(); + SetRemoteServerLive(node, false, false); + } + else + { + RemoteServer server = StaticExports.CreateRemoteServer(host.Hostname, 0); + server.ShutdownServerAndConnection(); + hosts.BeginUpdate(); + SetRemoteServerLive(node, false, false); + hosts.EndUpdate(); + } } catch (Exception) {