diff options
Diffstat (limited to 'rtgrpblib_create_raster.c')
-rw-r--r-- | rtgrpblib_create_raster.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/rtgrpblib_create_raster.c b/rtgrpblib_create_raster.c new file mode 100644 index 0000000..89ebad6 --- /dev/null +++ b/rtgrpblib_create_raster.c @@ -0,0 +1,40 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" +#ifndef TEST + + +RASTER * +rtgrpblib_create_raster(size_t width, size_t height) +{ + RASTER *raster; + + if (!width || !height) { + errno = EINVAL; + return NULL; + } + + if (width > (SIZE_MAX - offsetof(RASTER, cells)) / sizeof(*raster->cells) / height) + goto enomem; + raster = calloc(1, offsetof(RASTER, cells) + height * width * sizeof(*raster->cells)); + if (!raster) { + enomem: + errno = ENOMEM; + return NULL; + } + + raster->width = width; + raster->height = height; + raster->draftness = 0.5; + return raster; +} + + +#else + +int +main(void) +{ + return 0; /* TODO add test */ +} + +#endif |