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.
This commit is contained in:
Sergey Sharybin 2017-02-22 16:46:00 +01:00
parent 99abd1f79e
commit dd2e33b24d
2 changed files with 10 additions and 4 deletions

View File

@ -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();

View File

@ -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);