forked from ExternalVendorCode/Signal-Server
Tidy up and typedef structs for ease of maintenance
This commit is contained in:
56
image.hh
56
image.hh
@@ -6,40 +6,54 @@
|
||||
#define RGB_SIZE 3
|
||||
#define RGBA_SIZE 4
|
||||
|
||||
typedef enum _IMAGE_FORMAT{ IMAGE_DEFAULT = 0, \
|
||||
IMAGE_PPM, \
|
||||
IMAGE_LIBRARY, \
|
||||
IMAGE_FORMAT_MAX \
|
||||
} IMAGE_FORMAT;
|
||||
enum _image_format{ IMAGE_DEFAULT = 0, \
|
||||
IMAGE_PPM, \
|
||||
IMAGE_LIBRARY, \
|
||||
IMAGE_FORMAT_MAX \
|
||||
};
|
||||
|
||||
typedef enum _IMAGE_MODEL{ IMAGE_RGB, \
|
||||
IMAGE_RGBA, \
|
||||
IMAGE_MODEL_MAX
|
||||
} IMAGE_MODEL;
|
||||
enum _image_model{ IMAGE_RGB, \
|
||||
IMAGE_RGBA, \
|
||||
IMAGE_MODEL_MAX
|
||||
};
|
||||
|
||||
typedef struct _IMAGE_CTX{
|
||||
typedef struct _image_ctx{
|
||||
size_t width;
|
||||
size_t height;
|
||||
IMAGE_MODEL model;
|
||||
IMAGE_FORMAT format;
|
||||
int model;
|
||||
int format;
|
||||
uint8_t *canvas;
|
||||
uint8_t *next_pixel;
|
||||
uint32_t initialized;
|
||||
char *extension;
|
||||
void *_dt;
|
||||
} IMAGE_CTX, *PIMAGE_CTX;
|
||||
} image_ctx_t, *pimage_ctx_t;
|
||||
|
||||
int image_set_format(IMAGE_FORMAT);
|
||||
int image_init(PIMAGE_CTX, const size_t, const size_t, const IMAGE_MODEL, const IMAGE_FORMAT);
|
||||
int image_add_pixel(PIMAGE_CTX ctx, const uint8_t, const uint8_t, const uint8_t, const uint8_t);
|
||||
int image_set_pixel(PIMAGE_CTX ctx, const size_t, const size_t, const uint8_t, const uint8_t, const uint8_t, const uint8_t);
|
||||
int image_get_pixel(PIMAGE_CTX ctx,const size_t,const size_t, uint8_t const*, uint8_t const*, uint8_t const*, uint8_t const*);
|
||||
int image_get_filename(PIMAGE_CTX, char*, size_t, char*);
|
||||
int image_write(PIMAGE_CTX, FILE*);
|
||||
void image_free(PIMAGE_CTX);
|
||||
typedef int _init(image_ctx_t*);
|
||||
typedef int _add_pixel(image_ctx_t*,const uint8_t,const uint8_t,const uint8_t,const uint8_t);
|
||||
typedef int _get_pixel(image_ctx_t*,const size_t,const size_t,const uint8_t*,const uint8_t*,const uint8_t*,const uint8_t*);
|
||||
typedef int _write(image_ctx_t*,FILE*);
|
||||
|
||||
typedef struct _image_dispatch_table{
|
||||
_init *init;
|
||||
_add_pixel *add_pixel;
|
||||
_get_pixel *get_pixel;
|
||||
_write *write;
|
||||
} image_dispatch_table_t;
|
||||
|
||||
int image_set_format(int);
|
||||
int image_init(image_ctx_t*, const size_t, const size_t, const int, const int);
|
||||
int image_add_pixel(image_ctx_t* ctx, const uint8_t, const uint8_t, const uint8_t, const uint8_t);
|
||||
int image_set_pixel(image_ctx_t* ctx, const size_t, const size_t, const uint8_t, const uint8_t, const uint8_t, const uint8_t);
|
||||
int image_get_pixel(image_ctx_t* ctx,const size_t,const size_t, uint8_t const*, uint8_t const*, uint8_t const*, uint8_t const*);
|
||||
int image_get_filename(image_ctx_t*, char*, size_t, char*);
|
||||
int image_write(image_ctx_t*, FILE*);
|
||||
void image_free(image_ctx_t*);
|
||||
int image_set_library(char*);
|
||||
|
||||
#define ADD_PIXEL(ctx,r,g,b) image_add_pixel((ctx),(r),(g),(b),0xff)
|
||||
#define ADD_PIXELA(ctx,r,g,b,a) image_add_pixel((ctx),(r),(g),(b),(a))
|
||||
|
||||
#define PIXEL_OFFSET(x,y,width,pixel_size) (((x) * (pixel_size)) + ((width) * (pixel_size) * (y)))
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user