diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-08-29 10:16:07 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-09-08 09:41:49 +0200 |
commit | dd523fcb00921ba5b51c283db809fd6ff083821c (patch) | |
tree | 630c57a2aabe264158c61062bd298ce818d3b6e6 /examples/quick/scenegraph/rendernode/openglrenderer.h | |
parent | ee702d94368140618fc4777a0e247219a28d39c8 (diff) | |
download | qtdeclarative-dd523fcb00921ba5b51c283db809fd6ff083821c.tar.gz |
rendernode example: Prevent gui-render thread data race
By taking things like the item width and height in updatePaintNode()
(while gui is locked).
Change-Id: I840c6c858a0478eb6ceb09653fd1e033cb54372d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'examples/quick/scenegraph/rendernode/openglrenderer.h')
-rw-r--r-- | examples/quick/scenegraph/rendernode/openglrenderer.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/examples/quick/scenegraph/rendernode/openglrenderer.h b/examples/quick/scenegraph/rendernode/openglrenderer.h index 8d2d3caad1..1e7977481a 100644 --- a/examples/quick/scenegraph/rendernode/openglrenderer.h +++ b/examples/quick/scenegraph/rendernode/openglrenderer.h @@ -52,12 +52,12 @@ #define OPENGLRENDERER_H #include <qsgrendernode.h> +#include <QQuickItem> #if QT_CONFIG(opengl) QT_BEGIN_NAMESPACE -class QQuickItem; class QOpenGLShaderProgram; class QOpenGLBuffer; @@ -67,7 +67,6 @@ QT_END_NAMESPACE class OpenGLRenderNode : public QSGRenderNode { public: - OpenGLRenderNode(QQuickItem *item); ~OpenGLRenderNode(); void render(const RenderState *state) override; @@ -77,10 +76,13 @@ public: QRectF rect() const override; //! [1] + void sync(QQuickItem *item); + private: void init(); - QQuickItem *m_item; + int m_width = 0; + int m_height = 0; QOpenGLShaderProgram *m_program = nullptr; int m_matrixUniform; int m_opacityUniform; |