textures.append(qMakePair(source.name, source.item));
QSGTextureProvider *t = QSGTextureProvider::from(source.item);
if (t && t->textureChangedSignal())
- connect(source.item, t->textureChangedSignal(), node, SLOT(markDirtyTexture()));
+ connect(source.item, t->textureChangedSignal(), node, SLOT(markDirtyTexture()), Qt::DirectConnection);
}
m_material.setUniforms(values);
m_material.setTextureProviders(textures);
if (!m_renderer) {
m_renderer = context->createRenderer();
- connect(m_renderer, SIGNAL(sceneGraphChanged()), this, SLOT(markDirtyTexture()));
+ connect(m_renderer, SIGNAL(sceneGraphChanged()), this, SLOT(markDirtyTexture()), Qt::DirectConnection);
}
m_renderer->setRootNode(static_cast<QSGRootNode *>(root));
{
setFlag(ItemHasContents);
m_texture = new QSGShaderEffectTexture(this);
+ connect(m_texture, SIGNAL(textureChanged()), this, SIGNAL(textureChanged()), Qt::DirectConnection);
}
QSGShaderEffectSource::~QSGShaderEffectSource()
void grab();
+Q_SIGNALS:
+ void textureChanged();
+
public Q_SLOTS:
void markDirtyTexture();
void setMipmap(bool enabled);
QSGTexture *texture() const;
- const char *textureChangedSignal() const { return SIGNAL(textureChanged); }
+ const char *textureChangedSignal() const { return SIGNAL(textureChanged()); }
Q_INVOKABLE void grab();
void hideSourceChanged();
void mipmapChanged();
+ void textureChanged();
+
protected:
virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *);
Q_OBJECT
public:
virtual bool updateTexture() = 0;
-
-Q_SIGNALS:
- void textureChanged();
};
QT_END_NAMESPACE
{
public:
virtual QSGTexture *texture() const = 0;
- virtual const char *textureChangedSignal() { return 0; }
+ virtual const char *textureChangedSignal() const { return 0; }
static QSGTextureProvider *from(QObject *object);
};