Browse Source

Added a setting (enabled by default) that keeps the module previews in memory forever. This makes it so that module previews aren't cleared out of memory when they have not been rendered for >60 frames making the module browser much more responsive at the cost of memory.

pull/1492/head
Mark Sanders 5 years ago
parent
commit
29a5e011aa
3 changed files with 9 additions and 1 deletions
  1. +1
    -0
      include/settings.hpp
  2. +1
    -1
      src/app/ModuleBrowser.cpp
  3. +7
    -0
      src/settings.cpp

+ 1
- 0
include/settings.hpp View File

@@ -29,6 +29,7 @@ extern float cableOpacity;
extern float cableTension;
extern bool allowCursorLock;
extern bool realTime;
extern bool keepPreviews;
extern float sampleRate;
extern int threadCount;
extern bool paramTooltip;


+ 1
- 1
src/app/ModuleBrowser.cpp View File

@@ -192,7 +192,7 @@ struct ModelBox : widget::OpaqueWidget {
}

void step() override {
if (previewFb && ++visibleFrames >= 60) {
if (!settings::keepPreviews && previewFb && ++visibleFrames >= 60) {
deletePreview();
}
OpaqueWidget::step();


+ 7
- 0
src/settings.cpp View File

@@ -24,6 +24,7 @@ float cableOpacity = 0.5;
float cableTension = 0.5;
bool allowCursorLock = true;
bool realTime = false;
bool keepPreviews = true;
float sampleRate = 44100.0;
int threadCount = 1;
bool paramTooltip = false;
@@ -65,6 +66,8 @@ json_t *toJson() {

json_object_set_new(rootJ, "realTime", json_boolean(realTime));

json_object_set_new(rootJ, "keepPreviews", json_boolean(keepPreviews));

json_object_set_new(rootJ, "sampleRate", json_real(sampleRate));

json_object_set_new(rootJ, "threadCount", json_integer(threadCount));
@@ -140,6 +143,10 @@ void fromJson(json_t *rootJ) {
if (realTimeJ)
realTime = json_boolean_value(realTimeJ);

json_t *keepPreviewsJ = json_object_get(rootJ, "keepPreviews");
if (keepPreviewsJ)
keepPreviews = json_boolean_value(keepPreviewsJ);

json_t *sampleRateJ = json_object_get(rootJ, "sampleRate");
if (sampleRateJ)
sampleRate = json_number_value(sampleRateJ);


Loading…
Cancel
Save