35 Q_DECLARE_PUBLIC(QQuickShaderEffect)
53 void setMesh(
const QVariant &mesh);
70 void handleItemChange(QQuickItem::ItemChange change,
const QQuickItem::ItemChangeData &value);
73 QSGShaderEffectNode *node);
79 void shaderCodePrepared(
bool ok, QSGGuiThreadShaderEffectManager::ShaderInfo::Type typeHint,
80 const QUrl &loadUrl, QSGGuiThreadShaderEffectManager::ShaderInfo *result);
83 QSGGuiThreadShaderEffectManager *shaderEffectManager()
const;
91 bool updateShader(Shader shaderType,
const QUrl &fileUrl);
92 void updateShaderVars(Shader shaderType);
93 void disconnectSignals(Shader shaderType);
94 void clearMappers(Shader shaderType);
95 std::optional<
int> findMappedShaderVariableId(
const QByteArray &name)
const;
96 std::optional<
int> findMappedShaderVariableId(
const QByteArray &name, Shader shaderType)
const;
97 bool sourceIsUnique(QQuickItem *source, Shader typeToSkip,
int indexToSkip)
const;
99 bool inDestructor =
false;
100 const QMetaObject *m_itemMetaObject =
nullptr;
101 QSize m_meshResolution;
102 QQuickShaderEffectMesh *m_mesh;
103 QMetaObject::Connection m_meshConnection;
104 QQuickGridMesh m_defaultMesh;
107 bool m_supportsAtlasTextures;
108 mutable QSGGuiThreadShaderEffectManager *m_mgr;
110 bool m_fragNeedsUpdate;
112 bool m_vertNeedsUpdate;
114 QSGShaderEffectNode::ShaderData m_shaders[NShader];
115 QSGShaderEffectNode::DirtyShaderFlags m_dirty;
116 QSet<
int> m_dirtyConstants[NShader];
117 QSet<
int> m_dirtyTextures[NShader];
118 QSGGuiThreadShaderEffectManager::ShaderInfo *m_inProgress[NShader];
120 QVector<QtPrivate::EffectSlotMapper *> m_mappers[NShader];
122 QHash<QQuickItem *, QMetaObject::Connection> m_destroyedConnections;