From 67fcf5256d81ce7e80ab1f4c75fb81b43e634301 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Mon, 23 Feb 2015 17:19:06 +0100 Subject: Move allocation of imbuf from array to allocimbuf. Skip allocation of temporary imbuf --- source/blender/imbuf/intern/allocimbuf.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source/blender/imbuf/intern/allocimbuf.c') diff --git a/source/blender/imbuf/intern/allocimbuf.c b/source/blender/imbuf/intern/allocimbuf.c index 556c4beeae7..b28d19e3e15 100644 --- a/source/blender/imbuf/intern/allocimbuf.c +++ b/source/blender/imbuf/intern/allocimbuf.c @@ -362,6 +362,30 @@ bool imb_addrectImBuf(ImBuf *ibuf) return false; } +struct ImBuf *IMB_allocFromBuffer(const unsigned int *rect, const float *rectf, + unsigned int w, unsigned int h) +{ + ImBuf *ibuf = NULL; + + if (!(rect || rectf)) + return NULL; + + ibuf = IMB_allocImBuf(w, h, 32, 0); + + if (rectf) { + ibuf->rect_float = MEM_dupallocN(rectf); + ibuf->flags |= IB_rectfloat; + ibuf->mall |= IB_rectfloat; + } + if (rect) { + ibuf->rect = MEM_dupallocN(rect); + ibuf->flags |= IB_rect; + ibuf->mall |= IB_rect; + } + + return ibuf; +} + bool imb_addtilesImBuf(ImBuf *ibuf) { if (ibuf == NULL) return false; -- cgit v1.2.3