reduce waveform scale

Exponentially improves performance (at the expense of higher zoom levels but they were probably already too extreme)
This commit is contained in:
itsmattkc
2021-09-03 13:46:37 -07:00
parent 5e66892e64
commit 5edb8f5d4a
6 changed files with 7 additions and 11 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ AudioVisualWaveform::AudioVisualWaveform() :
{
// Must be a power of 2
static const rational kMinimumSampleRate = rational(1, 8);
static const rational kMaximumSampleRate = 8192;
static const rational kMaximumSampleRate = 1024;
for (rational i=kMinimumSampleRate; i<=kMaximumSampleRate; i*=2) {
mipmapped_data_.insert({i, Sample()});
-5
View File
@@ -29,8 +29,6 @@
namespace olive {
const double TimeBasedView::kMaximumScale = 8192;
TimeBasedView::TimeBasedView(QWidget *parent) :
HandMovableView(parent),
playhead_scene_left_(-1),
@@ -53,9 +51,6 @@ TimeBasedView::TimeBasedView(QWidget *parent) :
// Signal to update bounding rect when the scene changes
connect(&scene_, &QGraphicsScene::changed, this, &TimeBasedView::UpdateSceneRect);
// Always enforce maximum scale
SetMaximumScale(kMaximumScale);
// Workaround for Qt drawing issues with the default MinimalViewportUpdate. While this might be
// slower (Qt documentation says it may actually be faster in some situations),
// MinimalViewportUpdate causes all sorts of graphical crud building up in the scene
-2
View File
@@ -36,8 +36,6 @@ class TimeBasedView : public HandMovableView, public TimeScaledObject
public:
TimeBasedView(QWidget* parent = nullptr);
static const double kMaximumScale;
void EnableSnap(const QVector<rational> &points);
void DisableSnap();
bool IsSnapped() const
+4 -2
View File
@@ -27,14 +27,16 @@
namespace olive {
// Keep this aligned with the kMaximumSampleRate in AudioVisualWaveform
const double TimeScaledObject::kMaximumScale = 1024;
const int TimeScaledObject::kCalculateDimensionsPadding = 10;
TimeScaledObject::TimeScaledObject() :
scale_(1.0),
min_scale_(0),
max_scale_(DBL_MAX)
max_scale_(kMaximumScale)
{
}
void TimeScaledObject::SetTimebase(const rational &timebase)
+2
View File
@@ -54,6 +54,8 @@ public:
double TimeToScene(const rational& time) const;
rational SceneToTime(const double &x, bool round = false) const;
static const double kMaximumScale;
protected:
virtual void TimebaseChangedEvent(const rational&){}
@@ -179,7 +179,6 @@ TimelineWidget::TimelineWidget(QWidget *parent) :
// FIXME: Magic number
SetScale(90.0);
SetMaximumScale(TimeBasedView::kMaximumScale);
SetAutoSetTimebase(false);
connect(Core::instance(), &Core::ToolChanged, this, &TimelineWidget::ToolChanged);