[Bf-blender-cvs] [dd2e33b24d] blender-v2.78c-release: Blender 2.78c: Fix crash with material preview and image sequences
Sergey Sharybin
noreply at git.blender.org
Wed Feb 22 16:50:23 CET 2017
Commit: dd2e33b24d79c22859479bd2ee38f030f2b7be52
Author: Sergey Sharybin
Date: Wed Feb 22 16:46:00 2017 +0100
Branches: blender-v2.78c-release
https://developer.blender.org/rBdd2e33b24d79c22859479bd2ee38f030f2b7be52
Blender 2.78c: Fix crash with material preview and image sequences
Don't use built-in API for image sequences since it's not really
finished in RNA API.
Fixes issue reported in T50616.
===================================================================
M intern/cycles/blender/blender_shader.cpp
M source/blender/blenkernel/intern/image.c
===================================================================
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index f63f94ab37..78f0cc1fc8 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -609,7 +609,8 @@ static ShaderNode *add_node(Scene *scene,
bool is_builtin = b_image.packed_file() ||
b_image.source() == BL::Image::source_GENERATED ||
b_image.source() == BL::Image::source_MOVIE ||
- b_engine.is_preview();
+ (b_engine.is_preview() &&
+ b_image.source() != BL::Image::source_SEQUENCE);
if(is_builtin) {
/* for builtin images we're using image datablock name to find an image to
@@ -661,7 +662,8 @@ static ShaderNode *add_node(Scene *scene,
bool is_builtin = b_image.packed_file() ||
b_image.source() == BL::Image::source_GENERATED ||
b_image.source() == BL::Image::source_MOVIE ||
- b_engine.is_preview();
+ (b_engine.is_preview() &&
+ b_image.source() != BL::Image::source_SEQUENCE);
if(is_builtin) {
int scene_frame = b_scene.frame_current();
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 8a9cb73c8c..0ffcaffb91 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -3178,7 +3178,7 @@ static ImBuf *load_sequence_single(Image *ima, ImageUser *iuser, int frame, cons
struct ImBuf *ibuf;
char name[FILE_MAX];
int flag;
- ImageUser iuser_t;
+ ImageUser iuser_t = {0};
/* XXX temp stuff? */
if (ima->lastframe != frame)
@@ -3186,8 +3186,12 @@ static ImBuf *load_sequence_single(Image *ima, ImageUser *iuser, int frame, cons
ima->lastframe = frame;
- if (iuser)
+ if (iuser) {
iuser_t = *iuser;
+ }
+ else {
+ /* TODO(sergey): Do we need to initialize something here? */
+ }
iuser_t.view = view_id;
BKE_image_user_file_path(&iuser_t, ima, name);
More information about the Bf-blender-cvs
mailing list