Merge pull request #4343 from TheUbuntuGuy/master
Fix block analyzer framerate
This commit is contained in:
commit
42a2739daf
@ -50,6 +50,8 @@ class Base : public QWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void framerateChanged() {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Base(QWidget*, uint scopeSize = 7);
|
Base(QWidget*, uint scopeSize = 7);
|
||||||
|
|
||||||
|
@ -165,6 +165,9 @@ void AnalyzerContainer::ChangeFramerate(int new_framerate) {
|
|||||||
// Even if it is not supposed to happen, I don't want to get a dbz error
|
// Even if it is not supposed to happen, I don't want to get a dbz error
|
||||||
new_framerate = new_framerate == 0 ? kMediumFramerate : new_framerate;
|
new_framerate = new_framerate == 0 ? kMediumFramerate : new_framerate;
|
||||||
current_analyzer_->changeTimeout(1000 / new_framerate);
|
current_analyzer_->changeTimeout(1000 / new_framerate);
|
||||||
|
|
||||||
|
// notify the current analyzer that the framerate has changed
|
||||||
|
current_analyzer_->framerateChanged();
|
||||||
}
|
}
|
||||||
SaveFramerate(new_framerate);
|
SaveFramerate(new_framerate);
|
||||||
}
|
}
|
||||||
|
@ -100,10 +100,16 @@ void BlockAnalyzer::determineStep() {
|
|||||||
// boxes/blocks of pixels)
|
// boxes/blocks of pixels)
|
||||||
// I calculated the value 30 based on some trial and error
|
// I calculated the value 30 based on some trial and error
|
||||||
|
|
||||||
const double fallTime = 30 * m_rows;
|
// the fall time of 30 is too slow on framerates above 50fps
|
||||||
|
const double fallTime = timeout() < 20 ? 20 * m_rows : 30 * m_rows;
|
||||||
|
|
||||||
m_step = double(m_rows * timeout()) / fallTime;
|
m_step = double(m_rows * timeout()) / fallTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BlockAnalyzer::framerateChanged() { // virtual
|
||||||
|
determineStep();
|
||||||
|
}
|
||||||
|
|
||||||
void BlockAnalyzer::transform(Analyzer::Scope& s) // pure virtual
|
void BlockAnalyzer::transform(Analyzer::Scope& s) // pure virtual
|
||||||
{
|
{
|
||||||
for (uint x = 0; x < s.size(); ++x) s[x] *= 2;
|
for (uint x = 0; x < s.size(); ++x) s[x] *= 2;
|
||||||
|
@ -36,6 +36,7 @@ class BlockAnalyzer : public Analyzer::Base {
|
|||||||
virtual void analyze(QPainter& p, const Analyzer::Scope&, bool new_frame);
|
virtual void analyze(QPainter& p, const Analyzer::Scope&, bool new_frame);
|
||||||
virtual void resizeEvent(QResizeEvent*);
|
virtual void resizeEvent(QResizeEvent*);
|
||||||
virtual void paletteChange(const QPalette&);
|
virtual void paletteChange(const QPalette&);
|
||||||
|
virtual void framerateChanged();
|
||||||
|
|
||||||
void drawBackground();
|
void drawBackground();
|
||||||
void determineStep();
|
void determineStep();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user