Commit: 09aaee5640b0c3d79801364d254890d8261acfee
Author: Sergey Sharybin
Date:   Mon Feb 19 14:33:48 2018 +0100
Branches: blender-v2.79a-release
https://developer.blender.org/rB09aaee5640b0c3d79801364d254890d8261acfee

Fix T53032: Image sequence works bad with Displace modifier

We shouldn't mix image pool acuisition with and without user provided,
the fact that internally image.c uses last frame from Image datablock
confuses the logic.

===================================================================

M       source/blender/blenkernel/intern/texture.c

===================================================================

diff --git a/source/blender/blenkernel/intern/texture.c 
b/source/blender/blenkernel/intern/texture.c
index a8a03607435..6e1db8554c1 100644
--- a/source/blender/blenkernel/intern/texture.c
+++ b/source/blender/blenkernel/intern/texture.c
@@ -1524,17 +1524,17 @@ void BKE_texture_get_value(
        BKE_texture_get_value_ex(scene, texture, tex_co, texres, NULL, 
use_color_management);
 }
 
-static void texture_nodes_fetch_images_for_pool(bNodeTree *ntree, struct 
ImagePool *pool)
+static void texture_nodes_fetch_images_for_pool(Tex *texture, bNodeTree 
*ntree, struct ImagePool *pool)
 {
        for (bNode *node = ntree->nodes.first; node; node = node->next) {
                if (node->type == SH_NODE_TEX_IMAGE && node->id != NULL) {
                        Image *image = (Image *)node->id;
-                       BKE_image_pool_acquire_ibuf(image, NULL, pool);
+                       BKE_image_pool_acquire_ibuf(image, &texture->iuser, 
pool);
                }
                else if (node->type == NODE_GROUP && node->id != NULL) {
                        /* TODO(sergey): Do we need to control recursion here? 
*/
                        bNodeTree *nested_tree = (bNodeTree *)node->id;
-                       texture_nodes_fetch_images_for_pool(nested_tree, pool);
+                       texture_nodes_fetch_images_for_pool(texture, 
nested_tree, pool);
                }
        }
 }
@@ -1543,12 +1543,12 @@ static void 
texture_nodes_fetch_images_for_pool(bNodeTree *ntree, struct ImagePo
 void BKE_texture_fetch_images_for_pool(Tex *texture, struct ImagePool *pool)
 {
        if (texture->nodetree != NULL) {
-               texture_nodes_fetch_images_for_pool(texture->nodetree, pool);
+               texture_nodes_fetch_images_for_pool(texture, texture->nodetree, 
pool);
        }
        else {
                if (texture->type == TEX_IMAGE) {
                        if (texture->ima != NULL) {
-                               BKE_image_pool_acquire_ibuf(texture->ima, NULL, 
pool);
+                               BKE_image_pool_acquire_ibuf(texture->ima, 
&texture->iuser, pool);
                        }
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to