forked from bartvdbraak/blender
bugfix [#23948] Alpha from images inside compositor is gone
also fix memory leak.
This commit is contained in:
parent
9f901f6422
commit
9387d46772
@ -393,6 +393,7 @@ void srgb_to_linearrgb_rgba_rgba_buf(float *col_to, float *col_from, int tot)
|
||||
{
|
||||
while(tot--) {
|
||||
srgb_to_linearrgb_v3_v3(col_to, col_from);
|
||||
col_to[3]= col_from[3];
|
||||
col_to += 4;
|
||||
col_from += 4;
|
||||
}
|
||||
@ -402,6 +403,7 @@ void linearrgb_to_srgb_rgba_rgba_buf(float *col_to, float *col_from, int tot)
|
||||
{
|
||||
while(tot--) {
|
||||
linearrgb_to_srgb_v3_v3(col_to, col_from);
|
||||
col_to[3]= col_from[3];
|
||||
col_to += 4;
|
||||
col_from += 4;
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ static CompBuf *node_composit_get_image(RenderData *rd, Image *ima, ImageUser *i
|
||||
rect= ibuf->rect_float;
|
||||
}
|
||||
else {
|
||||
rect= MEM_mallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image");
|
||||
rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image");
|
||||
srgb_to_linearrgb_rgba_rgba_buf(rect, ibuf->rect_float, ibuf->x * ibuf->y);
|
||||
alloc= TRUE;
|
||||
}
|
||||
@ -92,7 +92,7 @@ static CompBuf *node_composit_get_image(RenderData *rd, Image *ima, ImageUser *i
|
||||
rect= ibuf->rect_float;
|
||||
}
|
||||
else {
|
||||
rect= MEM_mallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image");
|
||||
rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image");
|
||||
linearrgb_to_srgb_rgba_rgba_buf(rect, ibuf->rect_float, ibuf->x * ibuf->y);
|
||||
alloc= TRUE;
|
||||
}
|
||||
@ -109,8 +109,9 @@ static CompBuf *node_composit_get_image(RenderData *rd, Image *ima, ImageUser *i
|
||||
}
|
||||
else {
|
||||
/* we put imbuf copy on stack, cbuf knows rect is from other ibuf when freed! */
|
||||
stackbuf= alloc_compbuf(ibuf->x, ibuf->y, type, alloc);
|
||||
stackbuf= alloc_compbuf(ibuf->x, ibuf->y, type, FALSE);
|
||||
stackbuf->rect= rect;
|
||||
stackbuf->malloc= alloc;
|
||||
}
|
||||
|
||||
/*code to respect the premul flag of images; I'm
|
||||
|
Loading…
Reference in New Issue
Block a user