Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Always reuse the same nanovg context for quantum widgets
  • Loading branch information
falkTX committed Sep 11, 2022
1 parent e609d5e commit cc80bfd
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 28 deletions.
40 changes: 23 additions & 17 deletions opengl/Quantum.cpp
Expand Up @@ -42,7 +42,7 @@ float normalizedLevelMeterValue(const float db)

// --------------------------------------------------------------------------------------------------------------------

QuantumButton::QuantumButton(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumButton::QuantumButton(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
ButtonEventHandler(this),
theme(t)
Expand Down Expand Up @@ -163,7 +163,7 @@ bool QuantumButton::onMotion(const MotionEvent& ev)

// --------------------------------------------------------------------------------------------------------------------

QuantumLabel::QuantumLabel(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumLabel::QuantumLabel(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
theme(t)
{
Expand Down Expand Up @@ -253,7 +253,7 @@ void QuantumLabel::onNanoDisplay()
// --------------------------------------------------------------------------------------------------------------------

template<bool horizontal>
AbstractQuantumSeparatorLine<horizontal>::AbstractQuantumSeparatorLine(TopLevelWidget* const parent, const QuantumTheme& t)
AbstractQuantumSeparatorLine<horizontal>::AbstractQuantumSeparatorLine(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
theme(t)
{
Expand Down Expand Up @@ -286,10 +286,16 @@ template class AbstractQuantumSeparatorLine<true>;
// --------------------------------------------------------------------------------------------------------------------

QuantumSpacer::QuantumSpacer(TopLevelWidget* const parent)
: SubWidget(parent) {}
: SubWidget(parent)
{
setSkipDrawing();
}

QuantumSpacer::QuantumSpacer(SubWidget* const parent)
: SubWidget(parent) {}
: SubWidget(parent)
{
setSkipDrawing();
}

void QuantumSpacer::onDisplay()
{
Expand All @@ -298,7 +304,7 @@ void QuantumSpacer::onDisplay()
// --------------------------------------------------------------------------------------------------------------------

template<bool small>
AbstractQuantumSwitch<small>::AbstractQuantumSwitch(TopLevelWidget* const parent, const QuantumTheme& t)
AbstractQuantumSwitch<small>::AbstractQuantumSwitch(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
ButtonEventHandler(this),
theme(t)
Expand Down Expand Up @@ -412,7 +418,7 @@ template class AbstractQuantumSwitch<true>;
// --------------------------------------------------------------------------------------------------------------------

/*
QuantumDualSidedSwitch::QuantumDualSidedSwitch(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumDualSidedSwitch::QuantumDualSidedSwitch(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
ButtonEventHandler(this),
theme(t)
Expand Down Expand Up @@ -503,7 +509,7 @@ bool QuantumDualSidedSwitch::onMotion(const MotionEvent& ev)

// --------------------------------------------------------------------------------------------------------------------

QuantumKnob::QuantumKnob(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumKnob::QuantumKnob(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
KnobEventHandler(this),
theme(t)
Expand Down Expand Up @@ -568,7 +574,7 @@ bool QuantumKnob::onMotion(const MotionEvent& ev)

// --------------------------------------------------------------------------------------------------------------------

QuantumMixerSlider::QuantumMixerSlider(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumMixerSlider::QuantumMixerSlider(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
KnobEventHandler(this),
theme(t)
Expand Down Expand Up @@ -832,7 +838,7 @@ void QuantumGainReductionMeter::onNanoDisplay()

// --------------------------------------------------------------------------------------------------------------------

QuantumValueMeter::QuantumValueMeter(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumValueMeter::QuantumValueMeter(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
theme(t)
{
Expand Down Expand Up @@ -992,7 +998,7 @@ void QuantumValueMeter::onNanoDisplay()

// --------------------------------------------------------------------------------------------------------------------

QuantumValueSlider::QuantumValueSlider(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumValueSlider::QuantumValueSlider(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
KnobEventHandler(this),
theme(t)
Expand Down Expand Up @@ -1110,7 +1116,7 @@ bool QuantumValueSlider::onMotion(const MotionEvent& ev)

// --------------------------------------------------------------------------------------------------------------------

QuantumLevelMeter::QuantumLevelMeter(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumLevelMeter::QuantumLevelMeter(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: QuantumValueMeter(parent, t)
{
loadSharedResources();
Expand Down Expand Up @@ -1147,7 +1153,7 @@ void QuantumLevelMeter::onNanoDisplay()

// --------------------------------------------------------------------------------------------------------------------

QuantumStereoLevelMeterWithLUFS::QuantumStereoLevelMeterWithLUFS(TopLevelWidget* const parent, const QuantumTheme& t)
QuantumStereoLevelMeterWithLUFS::QuantumStereoLevelMeterWithLUFS(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
app(parent->getApp()),
theme(t)
Expand Down Expand Up @@ -1460,7 +1466,7 @@ void respositionChildren(const Widget::PositionChangedEvent& ev, std::list<SubWi
}

template<class tMainWidget>
AbstractQuantumFrame<tMainWidget>::AbstractQuantumFrame(TopLevelWidget* const parent, const QuantumTheme& t)
AbstractQuantumFrame<tMainWidget>::AbstractQuantumFrame(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
theme(t)
{
Expand All @@ -1484,7 +1490,7 @@ template<class tMainWidget>
void AbstractQuantumFrame<tMainWidget>::onNanoDisplay()
{
beginPath();
rect(0, offset, getWidth(), getHeight());
rect(0, offset, getWidth(), getHeight() - offset);
fillColor(theme.widgetBackgroundColor);
fill();

Expand All @@ -1505,7 +1511,7 @@ template class AbstractQuantumFrame<char>;
// --------------------------------------------------------------------------------------------------------------------

template<>
AbstractQuantumFrame<QuantumLabel>::AbstractQuantumFrame(TopLevelWidget* const parent, const QuantumTheme& t)
AbstractQuantumFrame<QuantumLabel>::AbstractQuantumFrame(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
theme(t),
mainWidget(this, t)
Expand Down Expand Up @@ -1547,7 +1553,7 @@ template class AbstractQuantumFrame<QuantumLabel>;
// --------------------------------------------------------------------------------------------------------------------

template<>
AbstractQuantumFrame<QuantumSmallSwitch>::AbstractQuantumFrame(TopLevelWidget* const parent, const QuantumTheme& t)
AbstractQuantumFrame<QuantumSmallSwitch>::AbstractQuantumFrame(NanoTopLevelWidget* const parent, const QuantumTheme& t)
: NanoSubWidget(parent),
theme(t),
mainWidget(this, t)
Expand Down
22 changes: 11 additions & 11 deletions opengl/Quantum.hpp
Expand Up @@ -129,7 +129,7 @@ class QuantumButton : public NanoSubWidget,
bool labelHasNewLine = false;

public:
explicit QuantumButton(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumButton(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumButton(NanoSubWidget* parent, const QuantumTheme& theme);
~QuantumButton() override;

Expand Down Expand Up @@ -166,7 +166,7 @@ class QuantumLabel : public NanoSubWidget
Color labelColor = theme.textLightColor;

public:
explicit QuantumLabel(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumLabel(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumLabel(NanoSubWidget* parent, const QuantumTheme& theme);
~QuantumLabel() override;

Expand Down Expand Up @@ -204,7 +204,7 @@ class AbstractQuantumSeparatorLine : public NanoSubWidget
const QuantumTheme& theme;

public:
explicit AbstractQuantumSeparatorLine(TopLevelWidget* parent, const QuantumTheme& theme);
explicit AbstractQuantumSeparatorLine(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit AbstractQuantumSeparatorLine(NanoSubWidget* parent, const QuantumTheme& theme);

protected:
Expand Down Expand Up @@ -240,7 +240,7 @@ class AbstractQuantumSwitch : public NanoSubWidget,
char* label = nullptr;

public:
explicit AbstractQuantumSwitch(TopLevelWidget* parent, const QuantumTheme& theme);
explicit AbstractQuantumSwitch(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit AbstractQuantumSwitch(NanoSubWidget* parent, const QuantumTheme& theme);
~AbstractQuantumSwitch() override;

Expand Down Expand Up @@ -300,7 +300,7 @@ class QuantumKnob : public NanoSubWidget,
Color backgroundColor = theme.widgetDefaultActiveColor;

public:
explicit QuantumKnob(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumKnob(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumKnob(NanoSubWidget* parent, const QuantumTheme& theme);

inline Color getBackgroundColor() const noexcept
Expand All @@ -327,7 +327,7 @@ class QuantumMixerSlider : public NanoSubWidget,
const QuantumTheme& theme;

public:
explicit QuantumMixerSlider(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumMixerSlider(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumMixerSlider(NanoSubWidget* parent, const QuantumTheme& theme);
~QuantumMixerSlider() override;

Expand Down Expand Up @@ -374,7 +374,7 @@ class QuantumValueMeter : public NanoSubWidget
MiddleToEdges // FIXME this needs a better name..
};

explicit QuantumValueMeter(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumValueMeter(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumValueMeter(NanoSubWidget* parent, const QuantumTheme& theme);
~QuantumValueMeter() override;

Expand Down Expand Up @@ -431,7 +431,7 @@ class QuantumValueSlider : public NanoSubWidget,
char* unitLabel = nullptr;

public:
explicit QuantumValueSlider(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumValueSlider(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumValueSlider(NanoSubWidget* parent, const QuantumTheme& theme);
~QuantumValueSlider() override;

Expand Down Expand Up @@ -469,7 +469,7 @@ class QuantumValueSlider : public NanoSubWidget,
class QuantumLevelMeter : public QuantumValueMeter
{
public:
explicit QuantumLevelMeter(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumLevelMeter(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumLevelMeter(NanoSubWidget* parent, const QuantumTheme& theme);

protected:
Expand Down Expand Up @@ -498,7 +498,7 @@ class QuantumStereoLevelMeterWithLUFS : public NanoSubWidget,
double lastTimeR = 0.0;

public:
explicit QuantumStereoLevelMeterWithLUFS(TopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumStereoLevelMeterWithLUFS(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit QuantumStereoLevelMeterWithLUFS(NanoSubWidget* parent, const QuantumTheme& theme);

void setRange(float min, float max);
Expand All @@ -522,7 +522,7 @@ class AbstractQuantumFrame : public NanoSubWidget
const QuantumTheme& theme;

public:
explicit AbstractQuantumFrame(TopLevelWidget* parent, const QuantumTheme& theme);
explicit AbstractQuantumFrame(NanoTopLevelWidget* parent, const QuantumTheme& theme);
explicit AbstractQuantumFrame(NanoSubWidget* parent, const QuantumTheme& theme);

// publicly exposed for convenience, do not resize or reposition
Expand Down

0 comments on commit cc80bfd

Please sign in to comment.