I’m trying to be notified when part of a mesh change. For that I’m using a depsgraph_update_post handler, in which I call
bpy.context.evaluated_depsgraph_get() to get the evaluated depsgraph and its list of updates, that contain the information that the Mesh has changed (and I also get an update for its shape keys).
However I cannot figure out how to know what exactly have changed in the mesh: If the only thing I’m changing is the value of one of its shape keys, the updates I receive seems to be the same as if I change the geometry in edit mode.
This is a problem because the processing I’m doing is quite expensive and I would like to do the expensive part only when the geometry of the mesh changes, not when shapes keys values, or vertex groups names, or uv maps names, etc are changed. The worst part is that the updates seem to be the same even if I just select another shape key (it changes the active state of them so my handler is called, but I don’t really know that it was “just” a click in the interface).
I tried some experiments with msgbus, but there is no documentation for this module and it seems quite limited.