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 float cableTension;
extern bool allowCursorLock; extern bool allowCursorLock;
extern bool realTime; extern bool realTime;
extern bool keepPreviews;
extern float sampleRate; extern float sampleRate;
extern int threadCount; extern int threadCount;
extern bool paramTooltip; extern bool paramTooltip;


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

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


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


+ 7
- 0
src/settings.cpp View File

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


json_object_set_new(rootJ, "realTime", json_boolean(realTime)); 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, "sampleRate", json_real(sampleRate));


json_object_set_new(rootJ, "threadCount", json_integer(threadCount)); json_object_set_new(rootJ, "threadCount", json_integer(threadCount));
@@ -140,6 +143,10 @@ void fromJson(json_t *rootJ) {
if (realTimeJ) if (realTimeJ)
realTime = json_boolean_value(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"); json_t *sampleRateJ = json_object_get(rootJ, "sampleRate");
if (sampleRateJ) if (sampleRateJ)
sampleRate = json_number_value(sampleRateJ); sampleRate = json_number_value(sampleRateJ);


Loading…
Cancel
Save