Skip to content
Snippets Groups Projects
chunk_info.c 901 B
Newer Older
#include <stdlib.h>
#include <stdio.h>
baptiste.coudray's avatar
baptiste.coudray committed
#include <assert.h>
#include "chunk_info.h"

baptiste.coudray's avatar
baptiste.coudray committed
extern void chunk_info_init(chunk_info_t *ci, int type, const int dimensions[2], int y, int x, bool allocate_data) {
    ci->dimensions[0] = dimensions[0];
    ci->dimensions[1] = dimensions[1];
baptiste.coudray's avatar
baptiste.coudray committed
    ci->count = (size_t) ci->dimensions[0] * (size_t) ci->dimensions[1];
baptiste.coudray's avatar
baptiste.coudray committed
    if (allocate_data) {
baptiste.coudray's avatar
baptiste.coudray committed
        chunk_info_allocate_data(ci, type);
baptiste.coudray's avatar
baptiste.coudray committed
    }
baptiste.coudray's avatar
baptiste.coudray committed
extern void chunk_info_allocate_data(chunk_info_t *ci, int type) {
    ci->data = calloc(ci->count, (size_t) type);
baptiste.coudray's avatar
baptiste.coudray committed
    assert(ci->data != NULL);
void chunk_info_print(chunk_info_t *ci) {
baptiste.coudray's avatar
baptiste.coudray committed
    printf("[chunk_info_t] data = %p, dimensions = [%d][%d], count = %zu, YX = (%d, %d)\n",
           ci->data, ci->dimensions[0], ci->dimensions[1], ci->count, ci->y, ci->x);
}

extern void chunk_info_free(chunk_info_t *ci) {
    free(ci->data);
}