diff options
author | Jacques Lucke <jacques@blender.org> | 2022-02-10 19:31:04 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2022-02-10 19:31:25 +0300 |
commit | 720d653b418bb5760c5891a2c8b74b72ea9889a9 (patch) | |
tree | eba7d92e1990a866eda34a205dfaa0f817ad0a06 /source/blender/blenkernel/intern | |
parent | c0674aa1450555b99435b9d09f8d94ae856f23d5 (diff) |
Fix T95624: video texture not refreshing when changing offset in node
The main issue is that the image and image user is not updated correctly
in `rna_ImageUser_update`. `BKE_image_user_frame_calc` does not set the
correct frame, because the image is null. Also `IMA_GPU_REFRESH` is not
set for the same reason.
When gpu materials are first created, it is expected that the frame is set
correctly, and the flag is set if necessary. Therefore, somewhere during
depsgraph evaluation, those have to be updated. The depsgraph node
to do the update existed already. Now there is a new relation so that it is
executed when the node tree changed, not only when the frame changed.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/node_tree_update.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/node_tree_update.cc b/source/blender/blenkernel/intern/node_tree_update.cc index 9f3ce68ca69..bea73ec8065 100644 --- a/source/blender/blenkernel/intern/node_tree_update.cc +++ b/source/blender/blenkernel/intern/node_tree_update.cc @@ -1642,6 +1642,12 @@ void BKE_ntree_update_tag_id_changed(Main *bmain, ID *id) FOREACH_NODETREE_END; } +void BKE_ntree_update_tag_image_user_changed(bNodeTree *ntree, ImageUser *UNUSED(iuser)) +{ + /* Would have to search for the node that uses the image user for a more detailed tag. */ + add_tree_tag(ntree, NTREE_CHANGED_ANY); +} + /** * Protect from recursive calls into the updating function. Some node update functions might * trigger this from Python or in other cases. |