summaryrefslogtreecommitdiff
path: root/examples/quick/scenegraph/rendernode/openglrenderer.h
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2019-08-29 10:16:07 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2019-09-08 09:41:49 +0200
commitdd523fcb00921ba5b51c283db809fd6ff083821c (patch)
tree630c57a2aabe264158c61062bd298ce818d3b6e6 /examples/quick/scenegraph/rendernode/openglrenderer.h
parentee702d94368140618fc4777a0e247219a28d39c8 (diff)
downloadqtdeclarative-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.h8
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;