From 6836014caa2b3169e9f973ba0ec98bf276d95a14 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sat, 1 Aug 2020 12:02:11 +0200 Subject: [PATCH] Capture ImGui mouse state. --- profiler/src/main.cpp | 2 ++ server/TracyMouse.cpp | 33 +++++++++++++++++++++++++++++---- server/TracyMouse.hpp | 2 ++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/profiler/src/main.cpp b/profiler/src/main.cpp index fd35dc5c..ad9583fb 100644 --- a/profiler/src/main.cpp +++ b/profiler/src/main.cpp @@ -36,6 +36,7 @@ #include "../../server/TracyBadVersion.hpp" #include "../../server/TracyFileRead.hpp" #include "../../server/TracyImGui.hpp" +#include "../../server/TracyMouse.hpp" #include "../../server/TracyPrint.hpp" #include "../../server/TracyStorage.hpp" #include "../../server/TracyView.hpp" @@ -434,6 +435,7 @@ static void DrawContents() ImGui_ImplOpenGL3_NewFrame(); ImGui_ImplGlfw_NewFrame(); ImGui::NewFrame(); + tracy::MouseFrame(); if( !view ) { diff --git a/server/TracyMouse.cpp b/server/TracyMouse.cpp index 4c385179..3e2df5f7 100644 --- a/server/TracyMouse.cpp +++ b/server/TracyMouse.cpp @@ -1,26 +1,51 @@ #include "TracyMouse.hpp" +#include "../imgui/imgui_internal.h" + namespace tracy { +static constexpr int MouseButtons = IM_ARRAYSIZE( ImGuiContext::IO.MouseDown ); + +struct Mouse +{ + bool mouseDown[MouseButtons]; + bool mouseClicked[MouseButtons]; + bool mouseDragging[MouseButtons]; + ImVec2 mouseDragDelta[MouseButtons]; +}; + +static Mouse s_mouse; + +void MouseFrame() +{ + for( int i=0; i