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)
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)
194 ID *
id =
ptr->owner_id;
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); \
261 ID *
id =
ptr->owner_id;
302# undef COLRAMP_GETPATH
310 ID *
id =
ptr->owner_id;
358static void rna_ColorRamp_eval(
ColorBand *coba,
float position,
float color[4])
374static void rna_ColorRampElement_remove(
ColorBand *coba,
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,
440 ID *
id =
ptr->owner_id;
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)
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) {
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,
645 ID *
id =
ptr->owner_id;
679 Seq_colorspace_cb_data cb_data = {colorspace_settings,
nullptr};
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";
722 ID *
id =
ptr->owner_id;
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)
#define CMP_NODE_VALTORGB
#define TEX_NODE_VALTORGB
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
@ COLORMANAGE_VIEW_USE_WHITE_BALANCE
@ COLORMANAGE_VIEW_USE_CURVES
@ COLORMANAGE_VIEW_USE_HDR
struct ColorManagedColorspaceSettings ColorManagedColorspaceSettings
@ SCOPES_WAVEFRM_YCC_JPEG
@ SCOPES_WAVEFRM_RGB_PARADE
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.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
#define RNA_POINTER_INVALIDATE(ptr)
ATTR_WARN_UNUSED_RESULT const void * element
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)
ColorManagedViewSettings view_settings
ColorManagedColorspaceSettings sequencer_colorspace_settings
ColorManagedDisplaySettings display_settings
ColorManagedColorspaceSettings colorspace_settings
void WM_main_add_notifier(uint type, void *reference)