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
-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&){}