Fix hellowindow example generating excess timers
The example was creating a new timer on every expose event, which quickly leads into massive excess of timeout signals. Fixed by only creating one timer. Task-number: QTBUG-27836 Change-Id: Ia6ed1bd9575e296f4c6c5b12509095e4d5c016dd Reviewed-by: Jonathan Liu <net147@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
parent
cbf4762426
commit
227accf0a3
@ -60,8 +60,7 @@ Renderer::Renderer(const QSurfaceFormat &format, Renderer *share, QScreen *scree
|
|||||||
}
|
}
|
||||||
|
|
||||||
HelloWindow::HelloWindow(const QSharedPointer<Renderer> &renderer)
|
HelloWindow::HelloWindow(const QSharedPointer<Renderer> &renderer)
|
||||||
: m_colorIndex(0)
|
: m_colorIndex(0), m_renderer(renderer), m_timer(0)
|
||||||
, m_renderer(renderer)
|
|
||||||
{
|
{
|
||||||
setSurfaceType(QWindow::OpenGLSurface);
|
setSurfaceType(QWindow::OpenGLSurface);
|
||||||
setWindowFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
|
setWindowFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
|
||||||
@ -84,9 +83,11 @@ void HelloWindow::exposeEvent(QExposeEvent *event)
|
|||||||
|
|
||||||
render();
|
render();
|
||||||
|
|
||||||
QTimer *timer = new QTimer(this);
|
if (!m_timer) {
|
||||||
connect(timer, SIGNAL(timeout()), this, SLOT(render()));
|
m_timer = new QTimer(this);
|
||||||
timer->start(10);
|
connect(m_timer, SIGNAL(timeout()), this, SLOT(render()));
|
||||||
|
m_timer->start(10);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HelloWindow::mousePressEvent(QMouseEvent *)
|
void HelloWindow::mousePressEvent(QMouseEvent *)
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QOpenGLContext;
|
class QOpenGLContext;
|
||||||
|
class QTimer;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
class Renderer : public QObject
|
class Renderer : public QObject
|
||||||
@ -107,4 +108,5 @@ private:
|
|||||||
int m_colorIndex;
|
int m_colorIndex;
|
||||||
QColor m_color;
|
QColor m_color;
|
||||||
const QSharedPointer<Renderer> m_renderer;
|
const QSharedPointer<Renderer> m_renderer;
|
||||||
|
QTimer *m_timer;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user