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)
 
uint64_t dt_dev_pixelpipe_raster_mask_hash (const struct dt_dev_pixelpipe_iop_t *piece, const int raster_mask_id)
 Build the shared cache key for one raster mask published by a module.
 
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.
 

Macro Definition Documentation

◆ DT_IOP_PARAMS_T

#define DT_IOP_PARAMS_T

Definition at line 75 of file pixelpipe.h.

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

Definition at line 76 of file pixelpipe.h.

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 

Definition at line 35 of file pixelpipe.h.

◆ dt_dev_request_flags_t

when to collect histogram

Enumerator
DT_REQUEST_NONE 
DT_REQUEST_ON 
DT_REQUEST_ONLY_IN_GUI 

Definition at line 45 of file pixelpipe.h.

Function Documentation

◆ dt_dev_clear_rawdetail_mask()

void dt_dev_clear_rawdetail_mask ( struct dt_dev_pixelpipe_t pipe)

◆ dt_dev_pixelpipe_raster_mask_hash()

uint64_t dt_dev_pixelpipe_raster_mask_hash ( const struct dt_dev_pixelpipe_iop_t piece,
const int  raster_mask_id 
)

Build the shared cache key for one raster mask published by a module.

Raster masks are side-band outputs of the provider blend stage. Their identity therefore starts from piece->global_mask_hash, which already includes the provider input, blend parameters and ROI, then adds a dedicated namespace and the provider-local mask id.

Parameters
pieceProvider pipeline node.
raster_mask_idProvider-local mask id.
Returns
uint64_t Shared cache key, or DT_PIXELPIPE_CACHE_HASH_INVALID.

◆ 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()