From 16be4fcabb8fa0b24f64c562cc22db3732d0ac97 Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 18 Oct 2021 02:57:42 +0100 Subject: [PATCH] Fix unset audio device; Force never cursor lock; Cleanup Signed-off-by: falkTX --- src/CardinalPlugin.cpp | 3 ++- src/CardinalUI.cpp | 4 +-- src/PluginContext.hpp | 4 +-- src/Window.cpp | 61 +++++++++--------------------------------- 4 files changed, 19 insertions(+), 53 deletions(-) diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index 9cdadd5..c98bb46 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -50,6 +50,7 @@ struct Initializer { { using namespace rack; + settings::allowCursorLock = false; settings::autoCheckUpdates = false; settings::autosaveInterval = 0; settings::discordUpdateActivity = false; @@ -222,7 +223,7 @@ protected: if (fCurrentDevice != dev) return false; - fCurrentDevice = dev; + fCurrentDevice = nullptr; return true; } diff --git a/src/CardinalUI.cpp b/src/CardinalUI.cpp index 783ada1..49060bf 100644 --- a/src/CardinalUI.cpp +++ b/src/CardinalUI.cpp @@ -197,7 +197,7 @@ protected: { const ScopedContext sc(this); - rack::math::Vec mousePos = rack::math::Vec(ev.pos.getX(), ev.pos.getY()); + rack::math::Vec mousePos = rack::math::Vec(ev.pos.getX(), ev.pos.getY()).div(1).round(); // .div(ctx->window->pixelRatio / ctx->window->windowRatio).round(); rack::math::Vec mouseDelta = mousePos.minus(fLastMousePos); @@ -206,7 +206,7 @@ protected: if (ctx->window->internal->ignoreNextMouseDelta) { ctx->window->internal->ignoreNextMouseDelta = false; - mouseDelta = math::Vec(); + mouseDelta = rack::math::Vec(); } */ diff --git a/src/PluginContext.hpp b/src/PluginContext.hpp index 99aea4f..257bf07 100644 --- a/src/PluginContext.hpp +++ b/src/PluginContext.hpp @@ -60,7 +60,7 @@ struct CardinalAudioDevice : rack::audio::Device { std::string getName() override { - return "Plugin Device"; + return "Cardinal"; } int getNumInputs() override @@ -115,7 +115,7 @@ struct CardinalAudioDriver : rack::audio::Driver { std::string getDeviceName(int) override { - return "Plugin Driver Device"; + return "Plugin Device"; } int getDeviceNumInputs(int) override diff --git a/src/Window.cpp b/src/Window.cpp index d22ed6a..31a2b4d 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -75,7 +75,6 @@ struct Window::Internal { std::string lastWindowTitle; int frame = 0; - bool ignoreNextMouseDelta = false; int frameSwapInterval = 1; double monitorRefreshRate = 60.0; // FIXME double frameTime = 0.0; @@ -150,19 +149,12 @@ void Window::step() { internal->frameTime = frameTime; internal->lastFrameDuration = frameTime - lastFrameTime; // DEBUG("%.2lf Hz", 1.0 / internal->lastFrameDuration); - double t1 = 0.0, t2 = 0.0, t3 = 0.0, t4 = 0.0, t5 = 0.0; // Make event handlers and step() have a clean NanoVG context // nvgReset(vg); bndSetFont(uiFont->handle); - // Poll events - // Save and restore context because event handler set their own context based on which window they originate from. - // Context* context = contextGet(); - // glfwPollEvents(); - // contextSet(context); - // Set window title std::string windowTitle = APP_NAME + " " + APP_EDITION_NAME + " " + APP_VERSION; if (APP->patch->path != "") { @@ -189,7 +181,6 @@ void Window::step() { int fbWidth = winWidth;// * newPixelRatio; int fbHeight = winHeight;// * newPixelRatio; windowRatio = (float)fbWidth / winWidth; - t1 = system::getTime(); if (APP->scene) { // DEBUG("%f %f %d %d", pixelRatio, windowRatio, fbWidth, winWidth); @@ -198,40 +189,22 @@ void Window::step() { // Step scene APP->scene->step(); - t2 = system::getTime(); // Render scene - bool visible = true; - if (visible) { - // Update and render -// nvgBeginFrame(vg, fbWidth, fbHeight, pixelRatio); - nvgScale(vg, pixelRatio, pixelRatio); - - // Draw scene - widget::Widget::DrawArgs args; - args.vg = vg; - args.clipBox = APP->scene->box.zeroPos(); - APP->scene->draw(args); - t3 = system::getTime(); - - glViewport(0, 0, fbWidth, fbHeight); - glClearColor(0.0, 0.0, 0.0, 1.0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); -// nvgEndFrame(vg); - t4 = system::getTime(); - } + // Update and render + nvgScale(vg, pixelRatio, pixelRatio); + + // Draw scene + widget::Widget::DrawArgs args; + args.vg = vg; + args.clipBox = APP->scene->box.zeroPos(); + APP->scene->draw(args); + + glViewport(0, 0, fbWidth, fbHeight); + glClearColor(0.0, 0.0, 0.0, 1.0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); } - t5 = system::getTime(); - - // DEBUG("pre-step %6.1f step %6.1f draw %6.1f nvgEndFrame %6.1f glfwSwapBuffers %6.1f total %6.1f", - // (t1 - frameTime) * 1e3f, - // (t2 - t1) * 1e3f, - // (t3 - t2) * 1e3f, - // (t4 - t2) * 1e3f, - // (t5 - t4) * 1e3f, - // (t5 - frameTime) * 1e3f - // ); internal->frame++; } @@ -250,23 +223,15 @@ void Window::close() { void Window::cursorLock() { - if (!settings::allowCursorLock) - return; - - internal->ignoreNextMouseDelta = true; } void Window::cursorUnlock() { - if (!settings::allowCursorLock) - return; - - internal->ignoreNextMouseDelta = true; } bool Window::isCursorLocked() { - return internal->ignoreNextMouseDelta; + return false; }