commit fa7cfc161d6a299bfab4ca6eeb048dbd6e7c82ab
parent f770c7b46408c80b76de1bbc37daf601829a8289
Author: Matt Demanett <matt@demanett.net>
Date: Mon, 27 Sep 2021 22:44:15 -0400
Rack2: fix font loading.
Diffstat:
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] {};