本文整理汇总了C++中WaveformWidgetAbstract::render方法的典型用法代码示例。如果您正苦于以下问题:C++ WaveformWidgetAbstract::render方法的具体用法?C++ WaveformWidgetAbstract::render怎么用?C++ WaveformWidgetAbstract::render使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WaveformWidgetAbstract
的用法示例。
在下文中一共展示了WaveformWidgetAbstract::render方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render
void WaveformWidgetFactory::render() {
ScopedTimer t(QString("WaveformWidgetFactory::render() %1waveforms")
.arg(m_waveformWidgetHolders.size()));
//int paintersSetupTime0 = 0;
//int paintersSetupTime1 = 0;
if (!m_skipRender) {
if (m_type) { // no regular updates for an empty waveform
// next rendered frame is displayed after next buffer swap and than after VSync
for (int i = 0; i < m_waveformWidgetHolders.size(); i++) {
// Calculate play position for the new Frame in following run
m_waveformWidgetHolders[i].m_waveformWidget->preRender(m_vsyncThread);
}
//qDebug() << "prerender" << m_vsyncThread->elapsed();
// It may happen that there is an artificially delayed due to
// anti tearing driver settings
// all render commands are delayed until the swap from the previous run is executed
for (int i = 0; i < m_waveformWidgetHolders.size(); i++) {
WaveformWidgetAbstract* pWaveformWidget = m_waveformWidgetHolders[i].m_waveformWidget;
if (pWaveformWidget->getWidth() > 0 &&
pWaveformWidget->getWidget()->isVisible()) {
(void)pWaveformWidget->render();
}
// qDebug() << "render" << i << m_vsyncThread->elapsed();
}
}
// Notify all other waveform-like widgets (e.g. WSpinny's) that they should
// update.
//int t1 = m_vsyncThread->elapsed();
emit(waveformUpdateTick());
//qDebug() << "emit" << m_vsyncThread->elapsed() - t1;
m_frameCnt += 1.0;
int timeCnt = m_time.elapsed();
if (timeCnt > 1000) {
m_time.start();
m_frameCnt = m_frameCnt * 1000 / timeCnt; // latency correction
emit(waveformMeasured(m_frameCnt, m_vsyncThread->rtErrorCnt()));
m_frameCnt = 0.0;
}
}
//qDebug() << "refresh end" << m_vsyncThread->elapsed();
m_vsyncThread->vsyncSlotFinished();
}