diff --git a/src/gui/debugWindow.cpp b/src/gui/debugWindow.cpp index 5dca05edb..2e6412d02 100644 --- a/src/gui/debugWindow.cpp +++ b/src/gui/debugWindow.cpp @@ -615,6 +615,7 @@ void FurnaceGUI::drawDebug() { ImGui::Text("audio: %dµs",lastProcTime); ImGui::Text("render: %.0fµs",(double)renderTimeDelta/perfFreq); ImGui::Text("draw: %.0fµs",(double)drawTimeDelta/perfFreq); + ImGui::Text("swap: %.0fµs",(double)swapTimeDelta/perfFreq); ImGui::Text("layout: %.0fµs",(double)layoutTimeDelta/perfFreq); ImGui::Text("event: %.0fµs",(double)eventTimeDelta/perfFreq); ImGui::Separator(); diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index cebb80b38..d92039d1b 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -6395,14 +6395,17 @@ bool FurnaceGUI::loop() { } } drawTimeEnd=SDL_GetPerformanceCounter(); + swapTimeBegin=SDL_GetPerformanceCounter(); rend->present(); if (settings.renderClearPos) { rend->clear(uiColors[GUI_COLOR_BACKGROUND]); } + swapTimeEnd=SDL_GetPerformanceCounter(); layoutTimeDelta=layoutTimeEnd-layoutTimeBegin; renderTimeDelta=renderTimeEnd-renderTimeBegin; drawTimeDelta=drawTimeEnd-drawTimeBegin; + swapTimeDelta=swapTimeEnd-swapTimeBegin; eventTimeDelta=eventTimeEnd-eventTimeBegin; soloTimeout-=ImGui::GetIO().DeltaTime; @@ -7595,6 +7598,9 @@ FurnaceGUI::FurnaceGUI(): drawTimeBegin(0), drawTimeEnd(0), drawTimeDelta(0), + swapTimeBegin(0), + swapTimeEnd(0), + swapTimeDelta(0), eventTimeBegin(0), eventTimeEnd(0), eventTimeDelta(0), diff --git a/src/gui/gui.h b/src/gui/gui.h index 0d0d4f576..00a33cbb9 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -2209,6 +2209,7 @@ class FurnaceGUI { uint64_t layoutTimeBegin, layoutTimeEnd, layoutTimeDelta; uint64_t renderTimeBegin, renderTimeEnd, renderTimeDelta; uint64_t drawTimeBegin, drawTimeEnd, drawTimeDelta; + uint64_t swapTimeBegin, swapTimeEnd, swapTimeDelta; uint64_t eventTimeBegin, eventTimeEnd, eventTimeDelta; FurnaceGUIPerfMetric perfMetrics[64]; diff --git a/src/gui/osc.cpp b/src/gui/osc.cpp index 314b128d1..05cd962f4 100644 --- a/src/gui/osc.cpp +++ b/src/gui/osc.cpp @@ -382,6 +382,10 @@ void FurnaceGUI::drawOsc() { if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { oscZoomSlider=!oscZoomSlider; } + if (mobileUI && ImGui::IsItemHovered() && CHECK_LONG_HOLD) { + oscZoomSlider=!oscZoomSlider; + NOTIFY_LONG_HOLD; + } } if (settings.oscTakesEntireWindow) { ImGui::PopStyleVar(3); diff --git a/src/gui/render/renderGL.cpp b/src/gui/render/renderGL.cpp index 4e7999d46..19c3daf4a 100644 --- a/src/gui/render/renderGL.cpp +++ b/src/gui/render/renderGL.cpp @@ -114,6 +114,8 @@ const char* sh_oscRender_srcF= " if (val>valmax) valmax=val;\n" " if (valvalmax*uResolution.y*0.5) discard;\n" + " if ((fur_fragCoord.y+uLineWidth)valmax*uResolution.y*0.5) discard;\n" + " if ((fur_fragCoord.y+uLineWidth)