44 public QSafeQuickItemChangeListener<QQuickShaderEffectSource>
47 Q_PROPERTY(WrapMode wrapMode READ wrapMode WRITE setWrapMode NOTIFY wrapModeChanged)
48 Q_PROPERTY(QQuickItem *sourceItem READ sourceItem WRITE setSourceItem NOTIFY sourceItemChanged)
49 Q_PROPERTY(QRectF sourceRect READ sourceRect WRITE setSourceRect NOTIFY sourceRectChanged)
50 Q_PROPERTY(QSize textureSize READ textureSize WRITE setTextureSize NOTIFY textureSizeChanged)
51 Q_PROPERTY(Format format READ format WRITE setFormat NOTIFY formatChanged)
52 Q_PROPERTY(
bool live READ live WRITE setLive NOTIFY liveChanged)
53 Q_PROPERTY(
bool hideSource READ hideSource WRITE setHideSource NOTIFY hideSourceChanged)
54 Q_PROPERTY(
bool mipmap READ mipmap WRITE setMipmap NOTIFY mipmapChanged)
55 Q_PROPERTY(
bool recursive READ recursive WRITE setRecursive NOTIFY recursiveChanged)
56 Q_PROPERTY(TextureMirroring textureMirroring READ textureMirroring WRITE setTextureMirroring NOTIFY textureMirroringChanged REVISION(2, 6))
57 Q_PROPERTY(
int samples READ samples WRITE setSamples NOTIFY samplesChanged REVISION(2, 9))
58 QML_NAMED_ELEMENT(ShaderEffectSource)
59 QML_ADDED_IN_VERSION(2, 0)
82 enum TextureMirroring {
84 MirrorHorizontally = 0x01,
85 MirrorVertically = 0x02
87 Q_ENUM(TextureMirroring)
89 QQuickShaderEffectSource(QQuickItem *parent =
nullptr);
90 ~QQuickShaderEffectSource() override;
92 WrapMode wrapMode()
const;
93 void setWrapMode(WrapMode mode);
95 QQuickItem *sourceItem()
const;
96 void setSourceItem(QQuickItem *item);
98 QRectF sourceRect()
const;
99 void setSourceRect(
const QRectF &rect);
101 QSize textureSize()
const;
102 void setTextureSize(
const QSize &size);
104 Format format()
const;
105 void setFormat(Format format);
108 void setLive(
bool live);
110 bool hideSource()
const;
111 void setHideSource(
bool hide);
114 void setMipmap(
bool enabled);
116 bool recursive()
const;
117 void setRecursive(
bool enabled);
119 TextureMirroring textureMirroring()
const;
120 void setTextureMirroring(TextureMirroring mirroring);
122 bool isTextureProvider()
const override {
return true; }
123 QSGTextureProvider *textureProvider()
const override;
125 Q_INVOKABLE
void scheduleUpdate();
128 void setSamples(
int count);
131 void wrapModeChanged();
132 void sourceItemChanged();
133 void sourceRectChanged();
134 void textureSizeChanged();
135 void formatChanged();
137 void hideSourceChanged();
138 void mipmapChanged();
139 void recursiveChanged();
140 void textureMirroringChanged();
141 void samplesChanged();
143 void scheduledUpdateCompleted();
146 void sourceItemDestroyed(QObject *item);
147 void invalidateSceneGraph();
150 void releaseResources() override;
151 QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
153 void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change,
const QRectF &) override;
154 void itemChange(ItemChange change,
const ItemChangeData &value) override;
157 void ensureTexture();
159 QQuickShaderEffectSourceTextureProvider *m_provider;
162 QQuickItem *m_sourceItem;
168 uint m_hideSource : 1;
170 uint m_recursive : 1;
172 uint m_textureMirroring : 2;
QSGTexture::Filtering mipmapFiltering
QSGTexture::WrapMode verticalWrap
QSGTexture::WrapMode horizontalWrap
QSGTexture::Filtering filtering