Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
develop/iop_profile.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2018-2019 Edgardo Hoszowski.
4 Copyright (C) 2019-2021, 2025 Aurélien PIERRE.
5 Copyright (C) 2019 Hanno Schwalm.
6 Copyright (C) 2019 luzpaz.
7 Copyright (C) 2019 Marcus Rückert.
8 Copyright (C) 2019-2020 Pascal Obry.
9 Copyright (C) 2020-2021 Dan Torop.
10 Copyright (C) 2020 Harold le Clément de Saint-Marcq.
11 Copyright (C) 2021 Heiko Bauke.
12 Copyright (C) 2021 Hubert Kowalski.
13 Copyright (C) 2021 Ralf Brown.
14 Copyright (C) 2021 Sakari Kapanen.
15 Copyright (C) 2022 Martin Bařinka.
16
17 darktable is free software: you can redistribute it and/or modify
18 it under the terms of the GNU Lesser General Public License as published by
19 the Free Software Foundation, either version 3 of the License, or
20 (at your option) any later version.
21
22 darktable is distributed in the hope that it will be useful,
23 but WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 GNU Lesser General Public License for more details.
26
27 You should have received a copy of the GNU Lesser General Public License
28 along with darktable. If not, see <http://www.gnu.org/licenses/>.
29*/
30#ifndef DT_DEVELOP_IOP_PROFILE_H
31#define DT_DEVELOP_IOP_PROFILE_H
32
33/* The pipeline-facing half of the colour-profile module: which profile a module, pipe or
34 * export should use, and transforming an image with it. Everything declared here takes a
35 * develop/ type, which is exactly why it is here and not in colorprofiles/iop_profile.h. */
36
39
40#ifdef __cplusplus
41extern "C" {
42#endif
43
44struct dt_iop_module_t;
45struct dt_develop_t;
48
62 GList *iop_list);
63
65 GList *iop_list);
66
75 const char *filename,
76 const int intent);
77
82 const char *filename,
83 const int intent, const dt_colormatrix_t matrix_in);
84
89 const char *filename,
90 const int intent);
91
96
99
101
103
106{
107 DT_IOPPR_PROFILE_STAGE_INPUT = 0, // before colorin
108 DT_IOPPR_PROFILE_STAGE_WORK = 1, // from colorin up to colorout
109 DT_IOPPR_PROFILE_STAGE_OUTPUT = 2 // from colorout on
111
122
125 const struct dt_dev_pixelpipe_t *pipe);
126
130 const char **profile_filename);
131
135 const char **profile_filename);
136
140 const char **profile_filename);
141
144#ifdef HAVE_OPENCL
145
146
148#endif // HAVE_OPENCL
149
150#ifdef __cplusplus
151}
152#endif
153
154#endif // DT_DEVELOP_IOP_PROFILE_H
155
156// clang-format off
157// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
158// vim: shiftwidth=2 expandtab tabstop=2 cindent
159// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
160// clang-format on
The colour-profile struct and the maths over it: the derived matrix/LUT engine.
dt_iop_order_iccprofile_info_t * dt_ioppr_get_pipe_output_profile_info(const struct dt_dev_pixelpipe_t *pipe)
void dt_ioppr_get_work_profile_type(struct dt_develop_t *dev, dt_colorspaces_color_profile_type_t *profile_type, const char **profile_filename)
dt_iop_order_iccprofile_info_t * dt_ioppr_get_pipe_work_profile_info(const struct dt_dev_pixelpipe_t *pipe)
dt_iop_order_iccprofile_info_t * dt_ioppr_set_pipe_work_profile_info(struct dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const dt_colorspaces_color_profile_type_t type, const char *filename, const int intent)
dt_iop_order_iccprofile_info_t * dt_ioppr_set_pipe_output_profile_info(struct dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const dt_colorspaces_color_profile_type_t type, const char *filename, const int intent)
dt_iop_order_iccprofile_info_t * dt_ioppr_get_iop_input_profile_info(struct dt_iop_module_t *module, GList *iop_list)
dt_iop_order_iccprofile_info_t * dt_ioppr_get_histogram_profile_info(struct dt_develop_t *dev)
dt_iop_order_iccprofile_info_t * dt_ioppr_get_pipe_input_profile_info(const struct dt_dev_pixelpipe_t *pipe)
void dt_ioppr_get_input_profile_type(struct dt_develop_t *dev, dt_colorspaces_color_profile_type_t *profile_type, const char **profile_filename)
dt_iop_order_iccprofile_info_t * dt_ioppr_get_iop_work_profile_info(struct dt_iop_module_t *module, GList *iop_list)
dt_ioppr_profile_stage_t
@ DT_IOPPR_PROFILE_STAGE_INPUT
@ DT_IOPPR_PROFILE_STAGE_WORK
@ DT_IOPPR_PROFILE_STAGE_OUTPUT
dt_ioppr_profile_stage_t dt_ioppr_get_module_profile_stage(const struct dt_iop_module_t *module)
Which of the pipe's input, working and output profiles applies at a module's position.
dt_iop_order_iccprofile_info_t * dt_ioppr_set_pipe_input_profile_info(struct dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const dt_colorspaces_color_profile_type_t type, const char *filename, const int intent, const dt_colormatrix_t matrix_in)
void dt_ioppr_get_export_profile_type(struct dt_develop_t *dev, dt_colorspaces_color_profile_type_t *profile_type, const char **profile_filename)
dt_iop_order_iccprofile_info_t * dt_ioppr_get_pipe_current_profile_info(struct dt_iop_module_t *module, const struct dt_dev_pixelpipe_t *pipe)
static const dt_dev_pixelpipe_t * pipe
Definition layers.h:49
_lib_location_type_t type
Definition location.c:1
float DT_ALIGNED_ARRAY dt_colormatrix_t[4][4]
Definition matrices.h:34
The colour-profile vocabulary, and nothing else.
dt_colorspaces_color_profile_type_t
A profile reduced to the arithmetic the pixel loop can run: two matrices and six tone-curve LUTs,...