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:
@@ -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()});
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user