Browse Source

Fix unset audio device; Force never cursor lock; Cleanup

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.02
falkTX 3 years ago
parent
commit
16be4fcabb
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 19 additions and 53 deletions
  1. +2
    -1
      src/CardinalPlugin.cpp
  2. +2
    -2
      src/CardinalUI.cpp
  3. +2
    -2
      src/PluginContext.hpp
  4. +13
    -48
      src/Window.cpp

+ 2
- 1
src/CardinalPlugin.cpp View File

@@ -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;
}


+ 2
- 2
src/CardinalUI.cpp View File

@@ -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();
}
*/



+ 2
- 2
src/PluginContext.hpp View File

@@ -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


+ 13
- 48
src/Window.cpp View File

@@ -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;
}




Loading…
Cancel
Save