diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-02-23 19:19:06 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-02-23 19:19:31 +0300 |
commit | 67fcf5256d81ce7e80ab1f4c75fb81b43e634301 (patch) | |
tree | afa1976d12e6b36d98d46e11fa94ad0516b0578e /source/blender/imbuf/intern/allocimbuf.c | |
parent | 97422ea64ff0d0f017c51394a9239fc43041e2f6 (diff) |
Move allocation of imbuf from array to allocimbuf.
Skip allocation of temporary imbuf
Diffstat (limited to 'source/blender/imbuf/intern/allocimbuf.c')
-rw-r--r-- | source/blender/imbuf/intern/allocimbuf.c | 24 |
1 files changed, 24 insertions, 0 deletions
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; |