Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
pixelpipe.h File Reference
#include <stdint.h>
#include "develop/pixelpipe_hb.h"
+ Include dependency graph for pixelpipe.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dt_dev_histogram_collection_params_t
 
struct  dt_dev_histogram_stats_t
 

Macros

#define DT_IOP_PARAMS_T
 

Typedefs

typedef enum dt_dev_pixelpipe_type_t dt_dev_pixelpipe_type_t
 
typedef enum dt_dev_request_flags_t dt_dev_request_flags_t
 
typedef struct dt_dev_histogram_collection_params_t dt_dev_histogram_collection_params_t
 
typedef struct dt_dev_histogram_stats_t dt_dev_histogram_stats_t
 
typedef void dt_iop_params_t
 

Enumerations

enum  dt_dev_pixelpipe_type_t {
  DT_DEV_PIXELPIPE_NONE = 0 ,
  DT_DEV_PIXELPIPE_EXPORT = 1 ,
  DT_DEV_PIXELPIPE_FULL = 2 ,
  DT_DEV_PIXELPIPE_PREVIEW = 3 ,
  DT_DEV_PIXELPIPE_THUMBNAIL = 4
}
 
enum  dt_dev_request_flags_t {
  DT_REQUEST_NONE = 0 ,
  DT_REQUEST_ON = 1 << 0 ,
  DT_REQUEST_ONLY_IN_GUI = 1 << 1
}
 

Functions

const char * dt_pixelpipe_name (dt_dev_pixelpipe_type_t pipe)
 
GHashTable * dt_pixelpipe_raster_alloc ()
 
void dt_pixelpipe_raster_cleanup (GHashTable *raster_masks)
 
uint64_t dt_dev_pixelpipe_rawdetail_mask_hash (const struct dt_dev_pixelpipe_iop_t *piece)
 Build the shared cache key used by the hidden detailmask module.
 
void dt_dev_clear_rawdetail_mask (struct dt_dev_pixelpipe_t *pipe)
 Release the side-band detail mask cache reference currently owned by the pipeline.
 
gboolean dt_pixelpipe_raster_replace (GHashTable *raster_masks, float *mask)
 Replace a raster mask in the raster masks hashtable of the pixelpipe.
 
gboolean dt_pixelpipe_raster_remove (GHashTable *raster_masks)
 Remove the raster mask with id 0 from the raster masks hashtable of the pixelpipe.
 
float * dt_pixelpipe_raster_get (GHashTable *raster_masks, const int raster_mask_id)
 Get the raster mask with given id from the raster masks hashtable of the pixelpipe.
 

Macro Definition Documentation

◆ DT_IOP_PARAMS_T

#define DT_IOP_PARAMS_T

Typedef Documentation

◆ dt_dev_histogram_collection_params_t

◆ dt_dev_histogram_stats_t

◆ dt_dev_pixelpipe_type_t

◆ dt_dev_request_flags_t

when to collect histogram

◆ dt_iop_params_t

Enumeration Type Documentation

◆ dt_dev_pixelpipe_type_t

Enumerator
DT_DEV_PIXELPIPE_NONE 
DT_DEV_PIXELPIPE_EXPORT 
DT_DEV_PIXELPIPE_FULL 
DT_DEV_PIXELPIPE_PREVIEW 
DT_DEV_PIXELPIPE_THUMBNAIL 

◆ dt_dev_request_flags_t

when to collect histogram

Enumerator
DT_REQUEST_NONE 
DT_REQUEST_ON 
DT_REQUEST_ONLY_IN_GUI 

Function Documentation

◆ dt_dev_clear_rawdetail_mask()

◆ dt_dev_pixelpipe_rawdetail_mask_hash()

uint64_t dt_dev_pixelpipe_rawdetail_mask_hash ( const struct dt_dev_pixelpipe_iop_t piece)

Build the shared cache key used by the hidden detailmask module.

The detailmask module copies its input pixels to its regular output cacheline, so the side-band detail mask needs its own stable cache identity. We derive it from the producer piece global hash with a constant salt so:

  • upstream edits and module-state edits invalidate the detail mask together with the producer,
  • the pixel payload cacheline and the side-band mask never alias,
  • any pipe can recover the same detail mask from the shared cache by hash.

◆ dt_pixelpipe_name()

◆ dt_pixelpipe_raster_alloc()

GHashTable * dt_pixelpipe_raster_alloc ( )

◆ dt_pixelpipe_raster_cleanup()

void dt_pixelpipe_raster_cleanup ( GHashTable *  raster_masks)

◆ dt_pixelpipe_raster_get()

float * dt_pixelpipe_raster_get ( GHashTable *  raster_masks,
const int  raster_mask_id 
)

Get the raster mask with given id from the raster masks hashtable of the pixelpipe.

Parameters
raster_masksthe raster masks hashtable of the pixelpipe
raster_mask_idthe raster mask id
Returns
float* the pointer to the raster mask, or NULL if not found

References IS_NULL_PTR.

Referenced by dt_dev_get_raster_mask().

◆ dt_pixelpipe_raster_remove()

gboolean dt_pixelpipe_raster_remove ( GHashTable *  raster_masks)

Remove the raster mask with id 0 from the raster masks hashtable of the pixelpipe.

Parameters
raster_masksthe raster masks hashtable of the pixelpipe
Returns
gboolean TRUE if the key existed and was removed, FALSE if it did not exist and nothing changed.

Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().

◆ dt_pixelpipe_raster_replace()

gboolean dt_pixelpipe_raster_replace ( GHashTable *  raster_masks,
float *  mask 
)

Replace a raster mask in the raster masks hashtable of the pixelpipe.

Parameters
raster_masksthe raster masks hashtable of the pixelpipe
maskthe pointer to the mask
Returns
gboolean TRUE if the key did not exist and was added, FALSE if it existed and was replaced.

Referenced by dt_develop_blend_process(), and dt_develop_blend_process_cl().