diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_image.c b/source/blender/nodes/intern/CMP_nodes/CMP_image.c index 6a82e8a9254..be5a1d7241b 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_image.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_image.c @@ -201,31 +201,33 @@ static void node_composit_exec_image(void *data, bNode *node, bNodeStack **in, b } else { stackbuf= node_composit_get_image(rd, ima, iuser); + + if (stackbuf) { + /*respect image premul option*/ + if (stackbuf->type==CB_RGBA && ima->flag & IMA_DO_PREMUL) { + int i; + float *pixel; - /*respect image premul option*/ - if (stackbuf->type==CB_RGBA && ima->flag & IMA_DO_PREMUL) { - int i; - float *pixel; - - /*first duplicate stackbuf->rect, since it's just a pointer - to the source imbuf, and we don't want to change that.*/ - stackbuf->rect = MEM_dupallocN(stackbuf->rect); + /*first duplicate stackbuf->rect, since it's just a pointer + to the source imbuf, and we don't want to change that.*/ + stackbuf->rect = MEM_dupallocN(stackbuf->rect); - /*premul the image*/ + /*premul the image*/ - pixel = stackbuf->rect; - for (i=0; ix*stackbuf->y; i++, pixel += 4) { - pixel[0] *= pixel[3]; - pixel[1] *= pixel[3]; - pixel[2] *= pixel[3]; + pixel = stackbuf->rect; + for (i=0; ix*stackbuf->y; i++, pixel += 4) { + pixel[0] *= pixel[3]; + pixel[1] *= pixel[3]; + pixel[2] *= pixel[3]; + } } + + /* put image on stack */ + out[0]->data= stackbuf; + + if(out[2]->hasoutput) + out[2]->data= node_composit_get_zimage(node, rd); } - - /* put image on stack */ - out[0]->data= stackbuf; - - if(out[2]->hasoutput) - out[2]->data= node_composit_get_zimage(node, rd); } /* alpha and preview for both types */ @@ -242,6 +244,7 @@ static void node_composit_init_image(bNode* node) { ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user"); node->storage= iuser; + iuser->frames= 1; iuser->sfra= 1; iuser->fie_ima= 2; iuser->ok= 1; diff --git a/source/blender/src/drawnode.c b/source/blender/src/drawnode.c index b15f81e77ae..b8756defa65 100644 --- a/source/blender/src/drawnode.c +++ b/source/blender/src/drawnode.c @@ -1004,7 +1004,7 @@ static int node_composit_buts_image(uiBlock *block, bNodeTree *ntree, bNode *nod dy-= 19; uiDefButI(block, NUM, B_NODE_EXEC+node->nr, "Frs:", xmin, dy, width, 19, - &iuser->frames, 0.0, MAXFRAMEF, 0, 0, "Amount of images used in animation"); + &iuser->frames, 1.0, MAXFRAMEF, 0, 0, "Amount of images used in animation"); uiDefButI(block, NUM, B_NODE_EXEC+node->nr, "SFra:", xmin+width, dy, width, 19, &iuser->sfra, 1.0, MAXFRAMEF, 0, 0, "Start frame of animation");