diff options
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/GPU_material.h | 4 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_node_graph.c | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h index ea3028e539b..f7a01fadadc 100644 --- a/source/blender/gpu/GPU_material.h +++ b/source/blender/gpu/GPU_material.h @@ -24,6 +24,7 @@ #pragma once #include "DNA_customdata_types.h" /* for CustomDataType */ +#include "DNA_image_types.h" #include "DNA_listBase.h" #include "BLI_sys_types.h" /* for bool */ @@ -256,7 +257,8 @@ typedef struct GPUMaterialAttribute { typedef struct GPUMaterialTexture { struct GPUMaterialTexture *next, *prev; struct Image *ima; - struct ImageUser *iuser; + struct ImageUser iuser; + bool iuser_available; struct GPUTexture **colorband; char sampler_name[32]; /* Name of sampler in GLSL. */ char tiled_mapping_name[32]; /* Name of tile mapping sampler in GLSL. */ diff --git a/source/blender/gpu/intern/gpu_node_graph.c b/source/blender/gpu/intern/gpu_node_graph.c index 50ff450ac79..e0d60aa5fda 100644 --- a/source/blender/gpu/intern/gpu_node_graph.c +++ b/source/blender/gpu/intern/gpu_node_graph.c @@ -439,7 +439,10 @@ static GPUMaterialTexture *gpu_node_graph_add_texture(GPUNodeGraph *graph, if (tex == NULL) { tex = MEM_callocN(sizeof(*tex), __func__); tex->ima = ima; - tex->iuser = iuser; + if (iuser != NULL) { + tex->iuser = *iuser; + tex->iuser_available = true; + } tex->colorband = colorband; tex->sampler_state = sampler_state; BLI_snprintf(tex->sampler_name, sizeof(tex->sampler_name), "samp%d", num_textures); |