aboutsummaryrefslogtreecommitdiffstats
path: root/libglitter_colour_model_convert_rasters_double.3
diff options
context:
space:
mode:
Diffstat (limited to 'libglitter_colour_model_convert_rasters_double.3')
-rw-r--r--libglitter_colour_model_convert_rasters_double.3150
1 files changed, 150 insertions, 0 deletions
diff --git a/libglitter_colour_model_convert_rasters_double.3 b/libglitter_colour_model_convert_rasters_double.3
new file mode 100644
index 0000000..329b638
--- /dev/null
+++ b/libglitter_colour_model_convert_rasters_double.3
@@ -0,0 +1,150 @@
+.TH LIBGLITTER_COLOUR_MODEL_CONVERT_RASTERS_* 3 LIBGLITTER
+.SH NAME
+LIBGLITTER_COLOUR_MODEL_CONVERT_RASTERS_* - Change colour model used for a set of corasters
+.SH SYNOPSIS
+.LP
+.nf
+#include <libglitter.h>
+
+void libglitter_colour_model_convert_rasters_double(size_t \fIn\fP, size_t \fIm\fP, double *\fIoutputs\fP[m],
+ const double *\fIinputs\fP[n], size_t \fIoutput_rowsize\fP,
+ size_t \fIoutput_cellsize\fP, size_t \fIinput_rowsize\fP,
+ size_t \fIinput_cellsize\fP, size_t \fIwidth\fP,
+ size_t \fIheight\fP, const double \fImatrix\fP[m][n]);
+
+void libglitter_colour_model_convert_rasters_float(size_t \fIn\fP, size_t \fIm\fP, float *\fIoutputs\fP[m],
+ const float *\fIinputs\fP[n], size_t \fIoutput_rowsize\fP,
+ size_t \fIoutput_cellsize\fP, size_t \fIinput_rowsize\fP,
+ size_t \fIinput_cellsize\fP, size_t \fIwidth\fP,
+ size_t \fIheight\fP, const float \fImatrix\fP[m][n]);
+.fi
+.PP
+Link with
+.IR "-lglitter -lm" .
+.SH DESCRIPTION
+The
+.BR libglitter_colour_model_convert_rasters_double ()
+and
+.BR libglitter_colour_model_convert_rasters_float ()
+functions convert a set of rasters (one per source
+colour channel) into another set of rasters (one per
+target colour channel) using a different colour model.
+This is useful for application that cannot output
+directly in the output's colour model.
+.PP
+.I n
+shall be the number of source colour channels
+(input rasters), and
+.I m
+shall be the number of target colour channels
+(output rasters).
+.PP
+.I outputs
+shall be the list of output rasters: it is to its elements
+that the function will write. Note that the rasters shall
+already be allocated. Additionally, the function may offset
+the input pointers in this list during execution. Therefore,
+the contents of this list shall be considered undefined
+immediately when the function is called, and may not be
+modified before the function terminates. The application
+must therefore have the pointers to these rasters saved
+elsewhere. The order the rasters shall have in the list
+.I outputs
+is determined how the colour model conversion matrix
+.RI ( matrix )
+was constructed: if it was created using the
+.BR libglitter_colour_model_convert_rasters_double (3),
+function, or the
+.BR libglitter_colour_model_convert_rasters_float (3),
+function, the order shall be (0) red, (1) green, (2) blue
+or (0) X, (1) Y, (2) Z.
+.PP
+.I inputs
+shall be the list of input rasters: it is from its elements
+that the function will read. The function may offset the
+input pointers in this list during execution. Therefore,
+the contents of this list shall be considered undefined
+immediately when the function is called, and may not be
+modified before the function terminates. The application
+must therefore have the pointers to these rasters saved
+elsewhere. The order the rasters shall have in the list
+.I inputs
+is determined how the colour model conversion matrix
+.RI ( matrix )
+was constructed: if it was created using the
+.BR libglitter_colour_model_convert_rasters_double (3),
+function, or the
+.BR libglitter_colour_model_convert_rasters_float (3),
+function, the order shall the order the output's primary
+colours' chromas hade in the function's argument list.
+.PP
+.I output_cellsize
+shall be the number of elements in an output raster the
+pointer to the raster must be offset with to get to a
+pointer to the next cell in the raster.
+.PP
+.I output_rowsize
+shall be the number of cells (not elements; but rather the
+number of elements divided by
+.IR output_cellsize )
+in an output raster the pointer to the raster must be
+offset with to get a pointer to the next row but the
+same column in the raster
+.PP
+.I input_cellsize
+shall be the number of elements in an input raster the
+pointer to the raster must be offset with to get to a
+pointer to the next cell in the raster.
+.PP
+.I input_rowsize
+shall be the number of cells (not elements; but rather the
+number of elements divided by
+.IR input_cellsize )
+in an input raster the pointer to the raster must be
+offset with to get a pointer to the next row but the
+same column in the raster
+.PP
+.I width
+and
+.I height
+shall describe the affected area in the rasters.
+.I width
+shall be the number of pixels the rasters have
+horizontally, and
+.I height
+shall be the number of pixels the rasters have
+vertically.
+.PP
+.I matrix
+shall be column-major conversion matrix from the source
+colour model (the output's colour model) to the target
+colour model (the application's colour model).
+.PP
+All rasters are in row-major order and must be distinct.
+.PP
+By default, these functions do not use hardware acceleration,
+they run on the CPU. However the
+.BR libglitter_enable_acceleration (3)
+may be able to enable hardware acceleration for these
+functions. It will require at least the following bits in
+its first argument to enable hardware acceleration:
+.RS
+.TP
+.I LIBGLITTER_FEATURE_COLOUR_MODEL | LIBGLITTER_FEATURE_DOUBLE_TYPE
+for
+.BR libglitter_colour_model_convert_rasters_double ()
+or
+.TP
+.I LIBGLITTER_FEATURE_COLOUR_MODEL | LIBGLITTER_FEATURE_FLOAT_TYPE
+for
+.BR libglitter_colour_model_convert_rasters_float ().
+.RE
+.SH RETURN VALUES
+None.
+.SH ERRORS
+None.
+.SH SEE ALSO
+.BR libglitter (7),
+.BR libglitter_colour_model_convert_rasters_double (3),
+.BR libglitter_compose_double (3),
+.BR libglitter_desaturate_double (3)