img.h

#pragma once

#include <stdint.h>
#include <lua.h>

#include "config.h"

union lil_Colour{
	uint8_t arr[4];
	uint32_t c;
	uint32_t rgb: 24;
	struct{
		uint8_t r;
		uint8_t g;
		uint8_t b;
		uint8_t a;
	};
} typedef lil_Colour;

struct lil_Image{
	union{
		lil_Colour* restrict d;
		uint8_t* restrict dptr;
	};
	int w, h;
} typedef lil_Image;

lil_Image* lil_cloneImage(lua_State* L, const lil_Image* img);
lil_Image* lil_getImage(lua_State* L, const int i);
lil_Image* lil_newImage(lua_State* L, const int w, const int h);
lil_Image* lil_newImageCalloc(lua_State* L, const int w, const int h);
lil_Image** lil_getImagePointer(lua_State* L, const int i);
void lil_fillImage(const lil_Image* img, const lil_Colour col);
void lil_freeImage(const lil_Image* img);
void lil_pushImage(lua_State* L, const lil_Image* img);
void lil_setImageSize(lua_State* L, lil_Image* img);
generated by LDoc 1.4.6 Last updated 2023-04-13 13:58:34