33 "Do not perform any color transform on load, treat colors as in scene linear space "
35 {0,
nullptr, 0,
nullptr,
nullptr},
40# include <fmt/format.h>
79 if (!cumap->cm[
len].curve) {
92 iter, cumap->cm,
sizeof(
CurveMap), rna_CurveMapping_curves_length(
ptr), 0,
nullptr);
95static void rna_CurveMapping_clip_set(
PointerRNA *
ptr,
bool value)
108 cumap->flag &= ~CUMA_DO_CLIP;
114static void rna_CurveMapping_black_level_set(
PointerRNA *
ptr,
const float *values)
117 cumap->black[0] = values[0];
118 cumap->black[1] = values[1];
119 cumap->black[2] = values[2];
123static void rna_CurveMapping_white_level_set(
PointerRNA *
ptr,
const float *values)
126 cumap->white[0] = values[0];
127 cumap->white[1] = values[1];
128 cumap->white[2] = values[2];
139 curve_mapping->cur = 3;
146static void rna_CurveMapping_extend_update(
Main * ,
154static void rna_CurveMapping_clipminx_range(
160 *max = cumap->clipr.xmax;
163static void rna_CurveMapping_clipminy_range(
169 *max = cumap->clipr.ymax;
172static void rna_CurveMapping_clipmaxx_range(
177 *
min = cumap->clipr.xmin;
181static void rna_CurveMapping_clipmaxy_range(
186 *
min = cumap->clipr.ymin;
190static std::optional<std::string> rna_ColorRamp_path(
const PointerRNA *
ptr)
196 switch (
GS(id->name)) {
203 if (node->storage ==
ptr->
data) {
209 return fmt::format(
"{}.color_ramp", node_path);
234static std::optional<std::string> rna_ColorRampElement_path(
const PointerRNA *
ptr)
238 std::optional<std::string> path;
245# define COLRAMP_GETPATH \
247 prop = RNA_struct_find_property(&ramp_ptr, "elements"); \
249 index = RNA_property_collection_lookup_index(&ramp_ptr, prop, ptr); \
251 std::string texture_path = rna_ColorRamp_path(&ramp_ptr).value_or(""); \
252 path = fmt::format("{}.elements[{}]", texture_path, index); \
263 switch (
GS(id->name)) {
302# undef COLRAMP_GETPATH
312 switch (
GS(id->name)) {
358static void rna_ColorRamp_eval(
ColorBand *coba,
float position,
float color[4])
367 if (element ==
nullptr) {
374static void rna_ColorRampElement_remove(
ColorBand *coba,
379 int index =
int(element - coba->
data);
405static int rna_ColorManagedDisplaySettings_display_device_get(
PointerRNA *
ptr)
412static void rna_ColorManagedDisplaySettings_display_device_set(
PointerRNA *
ptr,
int value)
418 STRNCPY(display->display_device, name);
422static const EnumPropertyItem *rna_ColorManagedDisplaySettings_display_device_itemf(
436static void rna_ColorManagedDisplaySettings_display_device_update(
Main *bmain,
456 ma =
static_cast<Material *
>(ma->id.next))
463static std::optional<std::string> rna_ColorManagedDisplaySettings_path(
const PointerRNA * )
465 return "display_settings";
468static int rna_ColorManagedViewSettings_view_transform_get(
PointerRNA *
ptr)
475static void rna_ColorManagedViewSettings_view_transform_set(
PointerRNA *
ptr,
int value)
484 STRNCPY(view->view_transform, view_name);
488 STRNCPY(view->look, look_name);
492static const EnumPropertyItem *rna_ColorManagedViewSettings_view_transform_itemf(
507static int rna_ColorManagedViewSettings_look_get(
PointerRNA *
ptr)
514static void rna_ColorManagedViewSettings_look_set(
PointerRNA *
ptr,
int value)
541static void rna_ColorManagedViewSettings_use_curves_set(
PointerRNA *
ptr,
bool value)
548 if (view_settings->curve_mapping ==
nullptr) {
553 view_settings->flag &= ~COLORMANAGE_VIEW_USE_CURVES;
557static std::optional<std::string> rna_ColorManagedViewSettings_path(
const PointerRNA * )
559 return "view_settings";
562static void rna_ColorManagedViewSettings_whitepoint_get(
PointerRNA *
ptr,
float value[3])
568static void rna_ColorManagedViewSettings_whitepoint_set(
PointerRNA *
ptr,
const float value[3])
574static bool rna_ColorManagedColorspaceSettings_is_data_get(
PointerRNA *
ptr)
578 return STREQ(colorspace->name, data_name);
581static void rna_ColorManagedColorspaceSettings_is_data_set(
PointerRNA *
ptr,
bool value)
586 STRNCPY(colorspace->name, data_name);
590static int rna_ColorManagedColorspaceSettings_colorspace_get(
PointerRNA *
ptr)
597static void rna_ColorManagedColorspaceSettings_colorspace_set(
PointerRNA *
ptr,
int value)
602 if (name && name[0]) {
603 STRNCPY(colorspace->name, name);
607static const EnumPropertyItem *rna_ColorManagedColorspaceSettings_colorspace_itemf(
621struct Seq_colorspace_cb_data {
631static bool seq_find_colorspace_settings_cb(
Sequence *seq,
void *user_data)
633 Seq_colorspace_cb_data *cd = (Seq_colorspace_cb_data *)user_data;
641static void rna_ColorManagedColorspaceSettings_reload_update(
Main *bmain,
663 else if (
GS(id->name) ==
ID_MC) {
679 Seq_colorspace_cb_data cb_data = {colorspace_settings,
nullptr};
681 if (&scene->sequencer_colorspace_settings == colorspace_settings) {
708static std::optional<std::string> rna_ColorManagedSequencerColorspaceSettings_path(
711 return "sequencer_colorspace_settings";
714static std::optional<std::string> rna_ColorManagedInputColorspaceSettings_path(
717 return "colorspace_settings";
734static float rna_CurveMapping_evaluateF(
CurveMapping *cumap,
739 if (&cumap->
cm[0] != cuma && &cumap->
cm[1] != cuma && &cumap->
cm[2] != cuma &&
740 &cumap->
cm[3] != cuma)
763 {0,
"AUTO", 0,
"Auto Handle",
""},
766 {0,
nullptr, 0,
nullptr,
nullptr},
781 prop,
"Handle Type",
"Curve interpolation at this point: Bézier or vector");
807 "Position to add point",
814 parm =
RNA_def_pointer(func,
"point",
"CurveMapPoint",
"",
"New point");
820 parm =
RNA_def_pointer(func,
"point",
"CurveMapPoint",
"",
"PointElement to remove");
851 "Combined curve is applied to each channel individually, which may result in a change of "
854 {0,
nullptr, 0,
nullptr,
nullptr},
858 {0,
"HORIZONTAL", 0,
"Horizontal",
""},
860 {0,
nullptr, 0,
nullptr,
nullptr},
867 "Curve mapping to map color, vector and scalar values to other values using "
868 "a user defined curve");
913 "rna_CurveMapping_curves_begin",
914 "rna_iterator_array_next",
915 "rna_iterator_array_end",
916 "rna_iterator_array_get",
917 "rna_CurveMapping_curves_length",
929 prop,
"Black Level",
"For RGB curves, the color that black is mapped to");
937 prop,
"White Level",
"For RGB curves, the color that white is mapped to");
952 parm =
RNA_def_pointer(func,
"curve",
"CurveMap",
"curve",
"Curve to evaluate");
960 "Position to evaluate curve at",
970 "Value of curve at given location",
985 srna,
"Color Ramp Element",
"Element defining a color at a position in the color ramp");
1023 func,
"position", 0.0f, 0.0f, 1.0f,
"Position",
"Position to add element", 0.0f, 1.0f);
1026 parm =
RNA_def_pointer(func,
"element",
"ColorRampElement",
"",
"New element");
1032 parm =
RNA_def_pointer(func,
"element",
"ColorRampElement",
"",
"Element to remove");
1051 {0,
nullptr, 0,
nullptr,
nullptr},
1058 {0,
nullptr, 0,
nullptr,
nullptr},
1066 {0,
nullptr, 0,
nullptr,
nullptr},
1117 "Evaluate Color Ramp at position",
1129 "Color at given position",
1148 {0,
nullptr, 0,
nullptr,
nullptr},
1178 {0,
nullptr, 0,
nullptr,
nullptr},
1184 {0,
nullptr, 0,
nullptr,
nullptr},
1200 prop,
"Accuracy",
"Proportion of original image source pixel lines to sample");
1237 {0,
"NONE", 0,
"None",
""},
1238 {0,
nullptr, 0,
nullptr,
nullptr},
1242 {0,
"NONE", 0,
"None",
"Do not modify image in an artistic manner"},
1243 {0,
nullptr, 0,
nullptr,
nullptr},
1251 "Do not perform any color transform on display, use old non-color managed technique for "
1253 {0,
nullptr, 0,
nullptr,
nullptr},
1257 srna =
RNA_def_struct(brna,
"ColorManagedDisplaySettings",
nullptr);
1260 srna,
"ColorManagedDisplaySettings",
"Color management specific to display device");
1265 "rna_ColorManagedDisplaySettings_display_device_get",
1266 "rna_ColorManagedDisplaySettings_display_device_set",
1267 "rna_ColorManagedDisplaySettings_display_device_itemf");
1270 prop,
NC_WINDOW,
"rna_ColorManagedDisplaySettings_display_device_update");
1273 srna =
RNA_def_struct(brna,
"ColorManagedViewSettings",
nullptr);
1276 "ColorManagedViewSettings",
1277 "Color management settings used for displaying images on the display");
1282 "rna_ColorManagedViewSettings_look_get",
1283 "rna_ColorManagedViewSettings_look_set",
1284 "rna_ColorManagedViewSettings_look_itemf");
1286 prop,
"Look",
"Additional transform applied before view transform for artistic needs");
1292 "rna_ColorManagedViewSettings_view_transform_get",
1293 "rna_ColorManagedViewSettings_view_transform_set",
1294 "rna_ColorManagedViewSettings_view_transform_itemf");
1296 prop,
"View Transform",
"View used when converting image to a display space");
1312 prop,
"Gamma",
"Amount of gamma modification applied after display transform");
1329 prop,
"Use White Balance",
"Perform chromatic adaption from a different white point");
1346 prop,
"Tint",
"Color tint of the scene's white point (the default of 10 matches daylight)");
1352 "rna_ColorManagedViewSettings_whitepoint_get",
1353 "rna_ColorManagedViewSettings_whitepoint_set",
1357 "The color which gets mapped to white "
1358 "(automatically converted to/from temperature and tint)");
1365 "High Dynamic Range",
1366 "Enable high dynamic range display in rendered viewport, uncapping display brightness. This "
1367 "requires a monitor with HDR support and a view transform designed for HDR. "
1368 "'Filmic' and 'AgX' do not generate HDR colors.");
1372 srna =
RNA_def_struct(brna,
"ColorManagedInputColorspaceSettings",
nullptr);
1375 srna,
"ColorManagedInputColorspaceSettings",
"Input color space settings");
1382 "rna_ColorManagedColorspaceSettings_colorspace_get",
1383 "rna_ColorManagedColorspaceSettings_colorspace_set",
1384 "rna_ColorManagedColorspaceSettings_colorspace_itemf");
1387 "Input Color Space",
1388 "Color space in the image file, to convert to and from when saving and loading the image");
1394 "rna_ColorManagedColorspaceSettings_is_data_get",
1395 "rna_ColorManagedColorspaceSettings_is_data_set");
1399 "Treat image as non-color data without color management, like normal or displacement maps");
1403 srna =
RNA_def_struct(brna,
"ColorManagedSequencerColorspaceSettings",
nullptr);
1406 srna,
"ColorManagedSequencerColorspaceSettings",
"Input color space settings");
1412 "rna_ColorManagedColorspaceSettings_colorspace_get",
1413 "rna_ColorManagedColorspaceSettings_colorspace_set",
1414 "rna_ColorManagedColorspaceSettings_colorspace_itemf");
CBData * BKE_colorband_element_add(ColorBand *coba, float position)
bool BKE_colorband_evaluate(const ColorBand *coba, float in, float out[4])
bool BKE_colorband_element_remove(ColorBand *coba, int index)
Scene * CTX_data_scene(const bContext *C)
#define IMA_SIGNAL_COLORMANAGE
void BKE_image_signal(Main *bmain, Image *ima, ImageUser *iuser, int signal)
Blender kernel freestyle line style functionality.
void BKE_linestyle_modifier_list_color_ramps(FreestyleLineStyle *linestyle, ListBase *listbase)
std::optional< std::string > BKE_linestyle_path_to_color_ramp(FreestyleLineStyle *linestyle, const struct ColorBand *color_ramp)
void BKE_ntree_update_tag_node_property(bNodeTree *ntree, bNode *node)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
#define STRNCPY(dst, src)
#define BLT_I18NCONTEXT_COLOR
void DEG_id_tag_update(ID *id, unsigned int flags)
@ CUMA_EXTEND_EXTRAPOLATE
@ SCOPES_WAVEFRM_YCC_JPEG
@ SCOPES_WAVEFRM_RGB_PARADE
@ COLORMANAGE_VIEW_USE_WHITE_BALANCE
@ COLORMANAGE_VIEW_USE_CURVES
@ COLORMANAGE_VIEW_USE_HDR
Object is a sort of wrapper for general info.
@ COLBAND_INTERP_CONSTANT
@ COLBAND_INTERP_B_SPLINE
@ COLBAND_INTERP_CARDINAL
void ED_node_tree_propagate_change(const bContext *C, Main *bmain, bNodeTree *ntree)
void IMB_colormanagement_colorspace_items_add(EnumPropertyItem **items, int *totitem)
bool IMB_colormanagement_set_whitepoint(const float whitepoint[3], float &temperature, float &tint)
const char * IMB_colormanagement_colorspace_get_indexed_name(int index)
void IMB_colormanagement_view_items_add(EnumPropertyItem **items, int *totitem, const char *display_name)
const char * IMB_colormanagement_look_get_indexed_name(int index)
const char * IMB_colormanagement_look_validate_for_view(const char *view_name, const char *look_name)
int IMB_colormanagement_view_get_named_index(const char *name)
void IMB_colormanagement_validate_settings(const ColorManagedDisplaySettings *display_settings, ColorManagedViewSettings *view_settings)
void IMB_colormanagement_get_whitepoint(const float temperature, const float tint, float whitepoint[3])
const char * IMB_colormanagement_role_colorspace_name_get(int role)
const char * IMB_colormanagement_display_get_indexed_name(int index)
int IMB_colormanagement_look_get_named_index(const char *name)
const char * IMB_colormanagement_view_get_indexed_name(int index)
void IMB_colormanagement_display_items_add(EnumPropertyItem **items, int *totitem)
int IMB_colormanagement_colorspace_get_named_index(const char *name)
void IMB_colormanagement_look_items_add(EnumPropertyItem **items, int *totitem, const char *view_name)
int IMB_colormanagement_display_get_named_index(const char *name)
void IMB_free_anim(ImBufAnim *anim)
Read Guarded memory(de)allocation.
#define RNA_POINTER_INVALIDATE(ptr)
ATTR_WARN_UNUSED_RESULT const void * element
FreestyleLineStyle linestyle
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void SEQ_cache_cleanup(Scene *scene)
void SEQ_for_each_callback(ListBase *seqbase, SeqForEachFunc callback, void *user_data)
void thumbnail_cache_clear(Scene *scene)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
PointerRNA RNA_pointer_create(ID *id, StructRNA *type, void *data)
PointerRNA RNA_id_pointer_create(ID *id)
static void rna_def_curvemap(BlenderRNA *brna)
static void rna_def_curvemap_points_api(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_def_color(BlenderRNA *brna)
static void rna_def_curvemappoint(BlenderRNA *brna)
static void rna_def_color_ramp(BlenderRNA *brna)
static void rna_def_curvemapping(BlenderRNA *brna)
static void rna_def_histogram(BlenderRNA *brna)
static void rna_def_color_ramp_element(BlenderRNA *brna)
static void rna_def_scopes(BlenderRNA *brna)
static void rna_def_colormanage(BlenderRNA *brna)
const EnumPropertyItem rna_enum_color_space_convert_default_items[]
static void rna_def_color_ramp_element_api(BlenderRNA *brna, PropertyRNA *cprop)
static const EnumPropertyItem prop_handle_type_items[]
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
PropertyRNA * RNA_def_float_color(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_function_output(FunctionRNA *, PropertyRNA *ret)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
std::optional< std::string > RNA_path_from_ID_to_struct(const PointerRNA *ptr)
bool RNA_path_resolve(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
void SEQ_relations_invalidate_cache_raw(Scene *scene, Sequence *seq)
void SEQ_relations_sequence_free_anim(Sequence *seq)
void SEQ_relations_invalidate_scene_strips(Main *bmain, Scene *scene_target)
void SEQ_relations_invalidate_movieclip_strips(Main *bmain, MovieClip *clip_target)
ColorManagedColorspaceSettings colorspace_settings
void WM_main_add_notifier(uint type, void *reference)