BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit fa7cfc161d6a299bfab4ca6eeb048dbd6e7c82ab
parent f770c7b46408c80b76de1bbc37daf601829a8289
Author: Matt Demanett <matt@demanett.net>
Date:   Mon, 27 Sep 2021 22:44:15 -0400

Rack2: fix font loading.

Diffstat:
Msrc/Blank3.cpp | 8+++++---
Msrc/Blank6.cpp | 8+++++---
Msrc/Reftone.cpp | 7++++---
Msrc/Walk2.cpp | 2--
Msrc/analyzer_base.cpp | 3++-
Msrc/analyzer_base.hpp | 4++--
6 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/Blank3.cpp b/src/Blank3.cpp @@ -20,16 +20,18 @@ void Blank3::processAll(const ProcessArgs& args) { struct Blank3Display : OpaqueWidget { Blank3* _module; const char* _text; - std::shared_ptr<Font> _font; + std::string _fontPath; Blank3Display(Blank3* module, const char* text) : _module(module) , _text(text) - , _font(APP->window->loadFont(asset::plugin(pluginInstance, "res/fonts/audiowide.ttf"))) + , _fontPath(asset::plugin(pluginInstance, "res/fonts/audiowide.ttf")) { } void draw(const DrawArgs& args) override { + std::shared_ptr<Font> font = APP->window->loadFont(_fontPath); + const Skins& skins = Skins::skins(); std::string skin = skins.defaultKey(); bool haveLevel = false; @@ -60,7 +62,7 @@ struct Blank3Display : OpaqueWidget { nvgRotate(args.vg, M_PI/2.0f); nvgTranslate(args.vg, -offsetY, offsetX); nvgFontSize(args.vg, 54.0f); - nvgFontFaceId(args.vg, _font->handle); + nvgFontFaceId(args.vg, font->handle); nvgTextLetterSpacing(args.vg, 9.0f); if (!haveLevel) { nvgFillColor(args.vg, textColor); diff --git a/src/Blank6.cpp b/src/Blank6.cpp @@ -20,16 +20,18 @@ void Blank6::processAll(const ProcessArgs& args) { struct Blank6Display : OpaqueWidget { Blank6* _module; const char* _text; - std::shared_ptr<Font> _font; + std::string _fontPath; Blank6Display(Blank6* module, const char* text) : _module(module) , _text(text) - , _font(APP->window->loadFont(asset::plugin(pluginInstance, "res/fonts/audiowide.ttf"))) + , _fontPath(asset::plugin(pluginInstance, "res/fonts/audiowide.ttf")) { } void draw(const DrawArgs& args) override { + std::shared_ptr<Font> font = APP->window->loadFont(_fontPath); + const Skins& skins = Skins::skins(); std::string skin = skins.defaultKey(); bool haveLevel = false; @@ -60,7 +62,7 @@ struct Blank6Display : OpaqueWidget { nvgRotate(args.vg, M_PI/2.0f); nvgTranslate(args.vg, -offsetY, offsetX); nvgFontSize(args.vg, 52.0f); - nvgFontFaceId(args.vg, _font->handle); + nvgFontFaceId(args.vg, font->handle); nvgTextLetterSpacing(args.vg, 9.0f); if (!haveLevel) { nvgFillColor(args.vg, textColor); diff --git a/src/Reftone.cpp b/src/Reftone.cpp @@ -39,7 +39,7 @@ struct ReftoneDisplay : TransparentWidget { Reftone* _module; const Vec _size; - std::shared_ptr<Font> _font; + std::string _fontPath; ReftoneDisplay( Reftone* module, @@ -47,7 +47,7 @@ struct ReftoneDisplay : TransparentWidget { ) : _module(module) , _size(size) - , _font(APP->window->loadFont(asset::plugin(pluginInstance, "res/fonts/inconsolata-bold.ttf"))) + , _fontPath(asset::plugin(pluginInstance, "res/fonts/inconsolata-bold.ttf")) { } @@ -156,10 +156,11 @@ void ReftoneDisplay::drawBackground(const DrawArgs& args) { } void ReftoneDisplay::drawText(const DrawArgs& args, const char* s, float x, float y, int size) { + std::shared_ptr<Font> font = APP->window->loadFont(_fontPath); nvgSave(args.vg); nvgTranslate(args.vg, x, y); nvgFontSize(args.vg, size); - nvgFontFaceId(args.vg, _font->handle); + nvgFontFaceId(args.vg, font->handle); nvgFillColor(args.vg, _textColor); nvgText(args.vg, 0, 0, s, NULL); nvgRestore(args.vg); diff --git a/src/Walk2.cpp b/src/Walk2.cpp @@ -179,7 +179,6 @@ struct Walk2Display : TransparentWidget { const Vec _size; const Vec _drawSize; int _midX, _midY; - std::shared_ptr<Font> _font; NVGcolor _traceColor = _defaultTraceColor; Vec _dragLast; @@ -192,7 +191,6 @@ struct Walk2Display : TransparentWidget { , _drawSize(2 * (_size.x - 2 * _insetAround), 2 * (_size.y - 2 * _insetAround)) , _midX(_insetAround + _drawSize.x/2) , _midY(_insetAround + _drawSize.y/2) - , _font(APP->window->loadFont(asset::plugin(pluginInstance, "res/fonts/inconsolata.ttf"))) { } diff --git a/src/analyzer_base.cpp b/src/analyzer_base.cpp @@ -981,11 +981,12 @@ void AnalyzerDisplay::drawFreezeOver(const DrawArgs& args, int binI, int binsN, } void AnalyzerDisplay::drawText(const DrawArgs& args, const char* s, float x, float y, float rotation, const NVGcolor* color, int fontSize) { + std::shared_ptr<Font> font = APP->window->loadFont(_fontPath); nvgSave(args.vg); nvgTranslate(args.vg, x, y); nvgRotate(args.vg, rotation); nvgFontSize(args.vg, fontSize); - nvgFontFaceId(args.vg, _font->handle); + nvgFontFaceId(args.vg, font->handle); nvgFillColor(args.vg, color ? *color : _textColor); nvgText(args.vg, 0, 0, s, NULL); nvgRestore(args.vg); diff --git a/src/analyzer_base.hpp b/src/analyzer_base.hpp @@ -224,7 +224,7 @@ struct AnalyzerDisplay : TransparentWidget, AnalyzerTypes { const Vec _size; const Vec _graphSize; bool _drawInset; - std::shared_ptr<Font> _font; + std::string _fontPath; float _xAxisLogFactor = baseXAxisLogFactor; BinsReaderFactory* _channelBinsReaderFactories = NULL; bool* _displayChannel = NULL; @@ -244,7 +244,7 @@ struct AnalyzerDisplay : TransparentWidget, AnalyzerTypes { , _size(size) , _graphSize(_size.x - _insetLeft - _insetRight, _size.y - _insetTop - _insetBottom) , _drawInset(drawInset) - , _font(APP->window->loadFont(asset::plugin(pluginInstance, "res/fonts/inconsolata.ttf"))) + , _fontPath(asset::plugin(pluginInstance, "res/fonts/inconsolata.ttf")) { if (_module) { _channelBinsReaderFactories = new BinsReaderFactory[_module->_core._nChannels] {};