From 501dc123ada348f18cac7ed05c812b5e633bd2ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Sun, 28 Jan 2024 01:13:15 +0100 Subject: WIP: Thread-safe colour management --- fiv-io.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'fiv-io.h') diff --git a/fiv-io.h b/fiv-io.h index d86c80a..c8d22c4 100644 --- a/fiv-io.h +++ b/fiv-io.h @@ -28,6 +28,7 @@ typedef struct _FivIoImage FivIoImage; typedef struct _FivIoProfile FivIoProfile; // --- Colour management ------------------------------------------------------- +// Note that without a CMM, all FivIoCmm and FivIoProfile will be returned NULL. GBytes *fiv_io_profile_to_bytes(FivIoProfile *profile); void fiv_io_profile_free(FivIoProfile *self); @@ -37,7 +38,7 @@ void fiv_io_profile_free(FivIoProfile *self); #define FIV_TYPE_IO_CMM (fiv_io_cmm_get_type()) G_DECLARE_FINAL_TYPE(FivIoCmm, fiv_io_cmm, FIV, IO_CMM, GObject) -FivIoCmm *fiv_io_cmm_get_default(); +FivIoCmm *fiv_io_cmm_get_default(void); FivIoProfile *fiv_io_cmm_get_profile( FivIoCmm *self, const void *data, size_t len); @@ -55,15 +56,15 @@ void fiv_io_cmm_cmyk(FivIoCmm *self, FivIoImage *image, FivIoProfile *source, FivIoProfile *target); void fiv_io_cmm_4x16le_direct(FivIoCmm *self, unsigned char *data, int w, int h, FivIoProfile *source, FivIoProfile *target); + void fiv_io_cmm_argb32_premultiply(FivIoCmm *self, - FivIoImage *image, FivIoProfile *source, FivIoProfile *target); + FivIoImage *image, FivIoProfile *source, FivIoProfile *target); +#define fiv_io_cmm_argb32_premultiply_page(cmm, page, target) \ + fiv_io_cmm_page((cmm), (page), (target), fiv_io_cmm_argb32_premultiply) void fiv_io_cmm_page(FivIoCmm *self, FivIoImage *page, FivIoProfile *target, void (*frame_cb) (FivIoCmm *, FivIoImage *, FivIoProfile *, FivIoProfile *)); -#define fiv_io_cmm_argb32_premultiply_page(cmm, page, target) \ - fiv_io_cmm_page((cmm), (page), (target), fiv_io_cmm_argb32_premultiply) - void fiv_io_cmm_any(FivIoCmm *self, FivIoImage *image, FivIoProfile *source, FivIoProfile *target); FivIoImage *fiv_io_cmm_finish(FivIoCmm *self, -- cgit v1.2.3