Changeset View
Changeset View
Standalone View
Standalone View
source/blender/imbuf/intern/rectop.c
| Show First 20 Lines • Show All 273 Lines • ▼ Show 20 Lines | void IMB_rect_crop(ImBuf *ibuf, const rcti *crop) | ||||
| rect_crop_4bytes((void **)&ibuf->zbuf, size_src, crop); | rect_crop_4bytes((void **)&ibuf->zbuf, size_src, crop); | ||||
| rect_crop_4bytes((void **)&ibuf->zbuf_float, size_src, crop); | rect_crop_4bytes((void **)&ibuf->zbuf_float, size_src, crop); | ||||
| rect_crop_16bytes((void **)&ibuf->rect_float, size_src, crop); | rect_crop_16bytes((void **)&ibuf->rect_float, size_src, crop); | ||||
| ibuf->x = size_dst[0]; | ibuf->x = size_dst[0]; | ||||
| ibuf->y = size_dst[1]; | ibuf->y = size_dst[1]; | ||||
| } | } | ||||
| /** Re-alloc buffers at a new size */ | |||||
| static void rect_realloc_4bytes(void **buf_p, const uint size[2]) | |||||
| { | |||||
| if (*buf_p == NULL) { | |||||
| return; | |||||
| } | |||||
| MEM_freeN(*buf_p); | |||||
| *buf_p = MEM_mallocN(sizeof(uint) * size[0] * size[1], __func__); | |||||
| } | |||||
| static void rect_realloc_16bytes(void **buf_p, const uint size[2]) | |||||
| { | |||||
| if (*buf_p == NULL) { | |||||
| return; | |||||
| } | |||||
| MEM_freeN(*buf_p); | |||||
| *buf_p = MEM_mallocN(sizeof(uint[4]) * size[0] * size[1], __func__); | |||||
| } | |||||
| /** | |||||
| * In-place size setting (caller must fill in buffer contents). | |||||
| */ | |||||
| void IMB_rect_size_set(ImBuf *ibuf, const uint size[2]) | |||||
| { | |||||
| BLI_assert(size[0] > 0 && size[0] > 0); | |||||
| if ((size[0] == ibuf->x) && (size[1] == ibuf->y)) { | |||||
| return; | |||||
| } | |||||
| rect_realloc_4bytes((void **)&ibuf->rect, size); | |||||
| rect_realloc_4bytes((void **)&ibuf->zbuf, size); | |||||
| rect_realloc_4bytes((void **)&ibuf->zbuf_float, size); | |||||
| rect_realloc_16bytes((void **)&ibuf->rect_float, size); | |||||
| ibuf->x = size[0]; | |||||
| ibuf->y = size[1]; | |||||
| } | |||||
| /* clipping */ | /* clipping */ | ||||
| void IMB_rectclip(ImBuf *dbuf, | void IMB_rectclip(ImBuf *dbuf, | ||||
| const ImBuf *sbuf, | const ImBuf *sbuf, | ||||
| int *destx, | int *destx, | ||||
| int *desty, | int *desty, | ||||
| int *srcx, | int *srcx, | ||||
| int *srcy, | int *srcy, | ||||
| ▲ Show 20 Lines • Show All 925 Lines • Show Last 20 Lines | |||||