diff --git a/renderdoc/core/core.cpp b/renderdoc/core/core.cpp index 9cdbb235d..865b56b1b 100644 --- a/renderdoc/core/core.cpp +++ b/renderdoc/core/core.cpp @@ -434,6 +434,12 @@ bool RenderDoc::IsRemoteAccessConnected() return !RenderDoc::Inst().m_SingleClientName.empty(); } +string RenderDoc::GetRemoteAccessUsername() +{ + SCOPED_LOCK(RenderDoc::Inst().m_SingleClientLock); + return RenderDoc::Inst().m_SingleClientName; +} + void RenderDoc::Tick() { static bool prev_focus = false; diff --git a/renderdoc/core/core.h b/renderdoc/core/core.h index 2ff3f5b97..42f9b5f21 100644 --- a/renderdoc/core/core.h +++ b/renderdoc/core/core.h @@ -247,6 +247,7 @@ class RenderDoc uint32_t GetRemoteAccessIdent() const { return m_RemoteIdent; } bool IsRemoteAccessConnected(); + string GetRemoteAccessUsername(); void Tick(); diff --git a/renderdoc/driver/d3d11/d3d11_device.cpp b/renderdoc/driver/d3d11/d3d11_device.cpp index 6f9708e67..380b88668 100644 --- a/renderdoc/driver/d3d11/d3d11_device.cpp +++ b/renderdoc/driver/d3d11/d3d11_device.cpp @@ -3082,17 +3082,27 @@ HRESULT WrappedID3D11Device::Present(IDXGISwapChain *swap, UINT SyncInterval, UI vector keys = RenderDoc::Inst().GetCaptureKeys(); string overlayText = "D3D11. "; - - for(size_t i=0; i < keys.size(); i++) + + if(Keyboard::PlatformHasKeyInput()) { - if(i > 0) - overlayText += ", "; + for(size_t i=0; i < keys.size(); i++) + { + if(i > 0) + overlayText += ", "; - overlayText += ToStr::Get(keys[i]); + overlayText += ToStr::Get(keys[i]); + } + + if(!keys.empty()) + overlayText += " to capture."; + } + else + { + if(RenderDoc::Inst().IsRemoteAccessConnected()) + overlayText += "Connected by " + RenderDoc::Inst().GetRemoteAccessUsername() + "."; + else + overlayText += "No remote access connection."; } - - if(!keys.empty()) - overlayText += " to capture."; if(overlay & eRENDERDOC_Overlay_FrameNumber) { diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index 97e5025f1..73a8392ea 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -2142,18 +2142,28 @@ void WrappedOpenGL::SwapBuffers(void *windowHandle) if(ctxdata.Modern()) { - overlayText += " "; - - for(size_t i=0; i < keys.size(); i++) + if(Keyboard::PlatformHasKeyInput()) { - if(i > 0) - overlayText += ", "; + overlayText += " "; - overlayText += ToStr::Get(keys[i]); + for(size_t i=0; i < keys.size(); i++) + { + if(i > 0) + overlayText += ", "; + + overlayText += ToStr::Get(keys[i]); + } + + if(!keys.empty()) + overlayText += " to capture."; + } + else + { + if(RenderDoc::Inst().IsRemoteAccessConnected()) + overlayText += "Connected by " + RenderDoc::Inst().GetRemoteAccessUsername() + "."; + else + overlayText += "No remote access connection."; } - - if(!keys.empty()) - overlayText += " to capture."; } if(overlay & eRENDERDOC_Overlay_FrameNumber) diff --git a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp index 67b8b2113..bbf1ab357 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp @@ -570,16 +570,26 @@ VkResult WrappedVulkan::vkQueuePresentKHR( string overlayText = "Vulkan. "; - for(size_t i=0; i < keys.size(); i++) + if(Keyboard::PlatformHasKeyInput()) { - if(i > 0) - overlayText += ", "; + for(size_t i=0; i < keys.size(); i++) + { + if(i > 0) + overlayText += ", "; - overlayText += ToStr::Get(keys[i]); + overlayText += ToStr::Get(keys[i]); + } + + if(!keys.empty()) + overlayText += " to capture."; + } + else + { + if(RenderDoc::Inst().IsRemoteAccessConnected()) + overlayText += "Connected by " + RenderDoc::Inst().GetRemoteAccessUsername() + "."; + else + overlayText += "No remote access connection."; } - - if(!keys.empty()) - overlayText += " to capture."; if(overlay & eRENDERDOC_Overlay_FrameNumber) { diff --git a/renderdoc/os/os_specific.h b/renderdoc/os/os_specific.h index bc4f6c5b0..feead48ed 100644 --- a/renderdoc/os/os_specific.h +++ b/renderdoc/os/os_specific.h @@ -283,6 +283,7 @@ namespace Keyboard void AddInputWindow(void *wnd); void RemoveInputWindow(void *wnd); bool GetKeyState(int key); + bool PlatformHasKeyInput(); }; // implemented per-platform diff --git a/renderdoc/os/posix/android/android_stringio.cpp b/renderdoc/os/posix/android/android_stringio.cpp index 959bd4df1..6e072d9a5 100644 --- a/renderdoc/os/posix/android/android_stringio.cpp +++ b/renderdoc/os/posix/android/android_stringio.cpp @@ -31,6 +31,11 @@ namespace Keyboard void Init() { } + + bool PlatformHasKeyInput() + { + return false; + } void CloneDisplay(Display *dpy) {} diff --git a/renderdoc/os/posix/linux/linux_stringio.cpp b/renderdoc/os/posix/linux/linux_stringio.cpp index c97f3fc23..da6e3e9b1 100644 --- a/renderdoc/os/posix/linux/linux_stringio.cpp +++ b/renderdoc/os/posix/linux/linux_stringio.cpp @@ -52,6 +52,11 @@ namespace Keyboard { } + bool PlatformHasKeyInput() + { + return true; + } + xcb_connection_t *connection; xcb_key_symbols_t *symbols; diff --git a/renderdoc/os/win32/win32_stringio.cpp b/renderdoc/os/win32/win32_stringio.cpp index 769939a37..d5ceaabf4 100644 --- a/renderdoc/os/win32/win32_stringio.cpp +++ b/renderdoc/os/win32/win32_stringio.cpp @@ -73,6 +73,11 @@ namespace Keyboard void Init() { } + + bool PlatformHasKeyInput() + { + return true; + } set inputWindows;