#pragma once

#include<stdint.h>
#include"defs.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct CHiImage {
	uint8_t bpc;
	uint8_t channels;
	uint16_t stride;
	uint16_t width;
	uint16_t height;
	union {
		uint16_t *data16;
		uint8_t *data8;
	};
	uint8_t owned;
} CHiImage;

CUTIVIS CHiImage* CHi_Image_New(uint8_t bpc, uint8_t channels, uint16_t stride, uint16_t width, uint16_t height, void *data);
CUTIVIS void CHi_Image_Free(CHiImage *img);

CUTIVIS void CHi_Restride(const void *oldbuf, void *newbuf, uint16_t oldStride, uint16_t newStride, uint16_t rows);

#ifdef __cplusplus
}
#endif