diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-07-02 19:56:32 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-07-02 19:56:32 +0400 |
commit | 1a493533c3b29644f2916a391ed7edd0c019a4f7 (patch) | |
tree | 0619a57fde7def6da5eb1a027657aaff63d42154 | |
parent | 994a937a97c2b43aa95c2fdabd98dd45cba16256 (diff) |
Fix #35944: adding keyframes or drivers on image sequences offset did not work
for cycles image texture node.
-rw-r--r-- | source/blender/makesrna/intern/rna_image.c | 6 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_internal.h | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_nodetree.c | 27 |
3 files changed, 33 insertions, 1 deletions
diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c index f795222438b..9181ab13aa7 100644 --- a/source/blender/makesrna/intern/rna_image.c +++ b/source/blender/makesrna/intern/rna_image.c @@ -158,8 +158,12 @@ static char *rna_ImageUser_path(PointerRNA *ptr) /* ImageUser *iuser = ptr->data; */ switch (GS(((ID *)ptr->id.data)->name)) { - case ID_TE: + case ID_TE: { return BLI_strdup("image_user"); + } + case ID_NT: { + return rna_Node_ImageUser_path(ptr); + } } } diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index b78972ea64c..d1cfb01abfb 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -246,6 +246,7 @@ int rna_Action_id_poll(struct PointerRNA *ptr, struct PointerRNA value); int rna_Action_actedit_assign_poll(struct PointerRNA *ptr, struct PointerRNA value); char *rna_TextureSlot_path(struct PointerRNA *ptr); +char *rna_Node_ImageUser_path(struct PointerRNA *ptr); /* API functions */ diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index bc3984e2a0d..4040f7f68c5 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1126,6 +1126,33 @@ static char *rna_Node_path(PointerRNA *ptr) return BLI_sprintfN("nodes[\"%s\"]", name_esc); } +char *rna_Node_ImageUser_path(PointerRNA *ptr) +{ + bNodeTree *ntree = (bNodeTree *)ptr->id.data; + bNode *node; + char name_esc[sizeof(node->name) * 2]; + + for (node = ntree->nodes.first; node; node = node->next) { + if (node->type == SH_NODE_TEX_ENVIRONMENT) { + NodeTexEnvironment *data = node->storage; + if (&data->iuser != ptr->data) + continue; + } + else if (node->type == SH_NODE_TEX_IMAGE) { + NodeTexImage *data = node->storage; + if (&data->iuser != ptr->data) + continue; + } + else + continue; + + BLI_strescape(name_esc, node->name, sizeof(name_esc)); + return BLI_sprintfN("nodes[\"%s\"].image_user", name_esc); + } + + return NULL; +} + static int rna_Node_poll(bNodeType *ntype, bNodeTree *ntree) { extern FunctionRNA rna_Node_poll_func; |