diff --git a/plugins/Cardinal/orig/glBars.svg b/plugins/Cardinal/orig/glBars.svg new file mode 100644 index 0000000..ad375f4 --- /dev/null +++ b/plugins/Cardinal/orig/glBars.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + glBars + + diff --git a/plugins/Cardinal/res/glBars.svg b/plugins/Cardinal/res/glBars.svg index 7120e1c..02d624f 100644 --- a/plugins/Cardinal/res/glBars.svg +++ b/plugins/Cardinal/res/glBars.svg @@ -2,45 +2,22 @@ + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="glBars.svg"> - - - - - diff --git a/plugins/Cardinal/src/glBars.cpp b/plugins/Cardinal/src/glBars.cpp index da1275b..5f12cf9 100644 --- a/plugins/Cardinal/src/glBars.cpp +++ b/plugins/Cardinal/src/glBars.cpp @@ -65,7 +65,10 @@ struct glBarsRendererWidget : OpenGlWidget { glBarsModule* const glBars; glBarsRendererWidget(glBarsModule* const module) - : glBars(module) {} + : glBars(module) + { + oversample = 2.0f; + } void drawFramebuffer() override { math::Vec fbSize = getFramebufferSize(); @@ -74,12 +77,13 @@ struct glBarsRendererWidget : OpenGlWidget { glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); - glViewport(0.0, 0.0, fbSize.x, fbSize.y); + glViewport(0.0, -100, fbSize.x * oversample, fbSize.y * oversample); glFrustum(-1, 1, -1, 1, 1.5, 10); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glBars->state.Render(); @@ -100,16 +104,28 @@ struct glBarsWidget : ModuleWidget { setModule(module); setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/glBars.svg"))); - addChild(createWidget(Vec(0, 0))); - addChild(createWidget(Vec(0, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); addChild(createWidget(Vec(RACK_GRID_WIDTH, 0))); + addChild(createWidget(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); addChild(createWidget(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); + addChild(createWidget(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); - glBarsRenderer->box.pos = Vec(2 * RACK_GRID_WIDTH, 0); - glBarsRenderer->box.size = Vec(box.size.x - 2 * RACK_GRID_WIDTH, box.size.y); + addInput(createInput(Vec(135.0f, 20.0f), module, glBarsModule::IN1_INPUT)); + + const float size = mm2px(127.0f); + glBarsRenderer->box.pos = Vec((box.size.x - size) * 0.5f, (box.size.y - size) * 0.5f); + glBarsRenderer->box.size = Vec(size, size); addChild(glBarsRenderer); + } - addInput(createInput(Vec(3, 54), module, glBarsModule::IN1_INPUT)); + void draw(const DrawArgs& args) override + { + nvgBeginPath(args.vg); + nvgRect(args.vg, 0, 0, box.size.x, box.size.y); + nvgFillPaint(args.vg, nvgLinearGradient(args.vg, 0, 0, 0, box.size.y, + nvgRGB(0x18, 0x19, 0x19), nvgRGB(0x21, 0x22, 0x22))); + nvgFill(args.vg); + + ModuleWidget::draw(args); } }; #else