Fix T96361: missing update when changing texture mapping properties

This commit is contained in:
Jacques Lucke 2022-03-22 16:33:55 +01:00
parent 8344ef7394
commit 87a0770bb9
Notes: blender-bot 2023-02-14 18:22:40 +01:00
Referenced by issue #96361, Regression: Texture Mapping properties of texture nodes are not updated in 3D Viewport
Referenced by issue #96241, 3.1: Potential candidates for corrective releases
Referenced by issue blender/blender-addons#96654, Sun Position Addon not working with HDRI maps
1 changed files with 16 additions and 0 deletions

View File

@ -21,6 +21,7 @@
#include "BLI_utildefines.h"
#include "BKE_node.h"
#include "BKE_node_tree_update.h"
#include "BKE_paint.h"
#include "RNA_define.h"
@ -191,8 +192,23 @@ static void rna_Texture_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *pt
static void rna_Texture_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr)
{
ID *id = ptr->owner_id;
TexMapping *texmap = ptr->data;
BKE_texture_mapping_init(texmap);
if (GS(id->name) == ID_NT) {
bNodeTree *ntree = (bNodeTree *)ptr->owner_id;
/* Try to find and tag the node that this #TexMapping belongs to. */
LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
/* This assumes that the #TexMapping is stored at the beginning of the node storage. This is
* generally true, see #NodeTexBase. If the assumption happens to be false, there might be a
* missing update. */
if (node->storage == texmap) {
BKE_ntree_update_tag_node_property(ntree, node);
}
}
}
rna_Texture_update(bmain, scene, ptr);
}