From 4e98d974b596cdb7b04872b9c8fb43fc284696e9 Mon Sep 17 00:00:00 2001 From: Aaron Carlisle Date: Wed, 15 Dec 2021 21:30:04 -0500 Subject: Nodes: Begin splitting composite node buttons into individual files Currently, most node buttons are defined in `drawnode.cc` however, this is inconvenient because it requires editing many files when adding new nodes. The goal is to minimize the number of files needed to add or update a node. This commit moves most of the node layout functions for composite nodes into their respected `source/blender/nodes/composite/nodes` file. In the future, these functions will be simplified to `node_layout` once files have their own namespace. See {D13466} for more information. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D13523 --- source/blender/editors/space_node/drawnode.cc | 1469 +------------------------ 1 file changed, 15 insertions(+), 1454 deletions(-) (limited to 'source/blender/editors/space_node/drawnode.cc') diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc index 87f7bfdafb0..bbfd886ce56 100644 --- a/source/blender/editors/space_node/drawnode.cc +++ b/source/blender/editors/space_node/drawnode.cc @@ -1095,1036 +1095,25 @@ static void node_composit_buts_image_ex(uiLayout *layout, bContext *C, PointerRN uiTemplateImage(layout, C, ptr, "image", &iuserptr, false, true); } -static void node_composit_buts_viewlayers(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - uiLayout *col, *row; - - uiTemplateID(layout, - C, - ptr, - "scene", - nullptr, - nullptr, - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - if (!node->id) { - return; - } - - col = uiLayoutColumn(layout, false); - row = uiLayoutRow(col, true); - uiItemR(row, ptr, "layer", DEFAULT_FLAGS, "", ICON_NONE); - - PropertyRNA *prop = RNA_struct_find_property(ptr, "layer"); - const char *layer_name; - if (!(RNA_property_enum_identifier( - C, ptr, prop, RNA_property_enum_get(ptr, prop), &layer_name))) { - return; - } - - PointerRNA scn_ptr; - char scene_name[MAX_ID_NAME - 2]; - scn_ptr = RNA_pointer_get(ptr, "scene"); - RNA_string_get(&scn_ptr, "name", scene_name); - - PointerRNA op_ptr; - uiItemFullO( - row, "RENDER_OT_render", "", ICON_RENDER_STILL, nullptr, WM_OP_INVOKE_DEFAULT, 0, &op_ptr); - RNA_string_set(&op_ptr, "layer", layer_name); - RNA_string_set(&op_ptr, "scene", scene_name); -} - -static void node_composit_buts_blur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col, *row; - - col = uiLayoutColumn(layout, false); - const int filter = RNA_enum_get(ptr, "filter_type"); - const int reference = RNA_boolean_get(ptr, "use_variable_size"); - - uiItemR(col, ptr, "filter_type", DEFAULT_FLAGS, "", ICON_NONE); - if (filter != R_FILTER_FAST_GAUSS) { - uiItemR(col, ptr, "use_variable_size", DEFAULT_FLAGS, nullptr, ICON_NONE); - if (!reference) { - uiItemR(col, ptr, "use_bokeh", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - uiItemR(col, ptr, "use_gamma_correction", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - - uiItemR(col, ptr, "use_relative", DEFAULT_FLAGS, nullptr, ICON_NONE); - - if (RNA_boolean_get(ptr, "use_relative")) { - uiItemL(col, IFACE_("Aspect Correction"), ICON_NONE); - row = uiLayoutRow(layout, true); - uiItemR(row, ptr, "aspect_correction", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "factor_x", DEFAULT_FLAGS, IFACE_("X"), ICON_NONE); - uiItemR(col, ptr, "factor_y", DEFAULT_FLAGS, IFACE_("Y"), ICON_NONE); - } - else { - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "size_x", DEFAULT_FLAGS, IFACE_("X"), ICON_NONE); - uiItemR(col, ptr, "size_y", DEFAULT_FLAGS, IFACE_("Y"), ICON_NONE); - } - uiItemR(col, ptr, "use_extended_bounds", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_dblur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - uiItemR(layout, ptr, "iterations", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "use_wrap", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, true); - uiItemL(col, IFACE_("Center:"), ICON_NONE); - uiItemR(col, ptr, "center_x", DEFAULT_FLAGS, IFACE_("X"), ICON_NONE); - uiItemR(col, ptr, "center_y", DEFAULT_FLAGS, IFACE_("Y"), ICON_NONE); - - uiItemS(layout); - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "distance", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "angle", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiItemS(layout); - - uiItemR(layout, ptr, "spin", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "zoom", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_bilateralblur(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "iterations", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "sigma_color", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "sigma_space", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_defocus(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - uiLayout *sub, *col; - - col = uiLayoutColumn(layout, false); - uiItemL(col, IFACE_("Bokeh Type:"), ICON_NONE); - uiItemR(col, ptr, "bokeh", DEFAULT_FLAGS, "", ICON_NONE); - uiItemR(col, ptr, "angle", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiItemR(layout, ptr, "use_gamma_correction", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, false); - uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_zbuffer") == true); - uiItemR(col, ptr, "f_stop", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiItemR(layout, ptr, "blur_max", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "threshold", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "use_preview", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiTemplateID(layout, - C, - ptr, - "scene", - nullptr, - nullptr, - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "use_zbuffer", DEFAULT_FLAGS, nullptr, ICON_NONE); - sub = uiLayoutColumn(col, false); - uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_zbuffer") == false); - uiItemR(sub, ptr, "z_scale", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_antialiasing(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - - uiItemR(col, ptr, "threshold", 0, nullptr, ICON_NONE); - uiItemR(col, ptr, "contrast_limit", 0, nullptr, ICON_NONE); - uiItemR(col, ptr, "corner_rounding", 0, nullptr, ICON_NONE); -} - -/* glare node */ -static void node_composit_buts_glare(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "glare_type", DEFAULT_FLAGS, "", ICON_NONE); - uiItemR(layout, ptr, "quality", DEFAULT_FLAGS, "", ICON_NONE); - - if (RNA_enum_get(ptr, "glare_type") != 1) { - uiItemR(layout, ptr, "iterations", DEFAULT_FLAGS, nullptr, ICON_NONE); - - if (RNA_enum_get(ptr, "glare_type") != 0) { - uiItemR( - layout, ptr, "color_modulation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - } - } - - uiItemR(layout, ptr, "mix", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "threshold", DEFAULT_FLAGS, nullptr, ICON_NONE); - - if (RNA_enum_get(ptr, "glare_type") == 2) { - uiItemR(layout, ptr, "streaks", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "angle_offset", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - if (RNA_enum_get(ptr, "glare_type") == 0 || RNA_enum_get(ptr, "glare_type") == 2) { - uiItemR(layout, ptr, "fade", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - - if (RNA_enum_get(ptr, "glare_type") == 0) { - uiItemR(layout, ptr, "use_rotate_45", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - } - if (RNA_enum_get(ptr, "glare_type") == 1) { - uiItemR(layout, ptr, "size", DEFAULT_FLAGS, nullptr, ICON_NONE); - } -} - -static void node_composit_buts_tonemap(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "tonemap_type", DEFAULT_FLAGS, "", ICON_NONE); - if (RNA_enum_get(ptr, "tonemap_type") == 0) { - uiItemR(col, ptr, "key", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "offset", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "gamma", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - else { - uiItemR(col, ptr, "intensity", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "adaptation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "correction", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - } -} - -static void node_composit_buts_lensdist(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "use_projector", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(col, false); - uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_projector") == false); - uiItemR(col, ptr, "use_jitter", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "use_fit", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_vecblur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "samples", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "factor", DEFAULT_FLAGS, IFACE_("Blur"), ICON_NONE); - - col = uiLayoutColumn(layout, true); - uiItemL(col, IFACE_("Speed:"), ICON_NONE); - uiItemR(col, ptr, "speed_min", DEFAULT_FLAGS, IFACE_("Min"), ICON_NONE); - uiItemR(col, ptr, "speed_max", DEFAULT_FLAGS, IFACE_("Max"), ICON_NONE); - - uiItemR(layout, ptr, "use_curved", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_filter(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "filter_type", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_flip(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "axis", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_crop(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - uiItemR(layout, ptr, "use_crop_size", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "relative", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, true); - if (RNA_boolean_get(ptr, "relative")) { - uiItemR(col, ptr, "rel_min_x", DEFAULT_FLAGS, IFACE_("Left"), ICON_NONE); - uiItemR(col, ptr, "rel_max_x", DEFAULT_FLAGS, IFACE_("Right"), ICON_NONE); - uiItemR(col, ptr, "rel_min_y", DEFAULT_FLAGS, IFACE_("Up"), ICON_NONE); - uiItemR(col, ptr, "rel_max_y", DEFAULT_FLAGS, IFACE_("Down"), ICON_NONE); - } - else { - uiItemR(col, ptr, "min_x", DEFAULT_FLAGS, IFACE_("Left"), ICON_NONE); - uiItemR(col, ptr, "max_x", DEFAULT_FLAGS, IFACE_("Right"), ICON_NONE); - uiItemR(col, ptr, "min_y", DEFAULT_FLAGS, IFACE_("Up"), ICON_NONE); - uiItemR(col, ptr, "max_y", DEFAULT_FLAGS, IFACE_("Down"), ICON_NONE); - } -} - -static void node_composit_buts_splitviewer(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *row, *col; - - col = uiLayoutColumn(layout, false); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "axis", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - uiItemR(col, ptr, "factor", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_double_edge_mask(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - - uiItemL(col, IFACE_("Inner Edge:"), ICON_NONE); - uiItemR(col, ptr, "inner_mode", DEFAULT_FLAGS, "", ICON_NONE); - uiItemL(col, IFACE_("Buffer Edge:"), ICON_NONE); - uiItemR(col, ptr, "edge_mode", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_map_range(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "use_clamp", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_map_value(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *sub, *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "offset", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "size", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "use_min", DEFAULT_FLAGS, nullptr, ICON_NONE); - sub = uiLayoutColumn(col, false); - uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_min")); - uiItemR(sub, ptr, "min", DEFAULT_FLAGS, "", ICON_NONE); - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "use_max", DEFAULT_FLAGS, nullptr, ICON_NONE); - sub = uiLayoutColumn(col, false); - uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_max")); - uiItemR(sub, ptr, "max", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_alphaover(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "use_premultiply", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "premul", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_zcombine(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "use_alpha", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "use_antialias_z", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_dilateerode(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "mode", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "distance", DEFAULT_FLAGS, nullptr, ICON_NONE); - switch (RNA_enum_get(ptr, "mode")) { - case CMP_NODE_DILATEERODE_DISTANCE_THRESH: - uiItemR(layout, ptr, "edge", DEFAULT_FLAGS, nullptr, ICON_NONE); - break; - case CMP_NODE_DILATEERODE_DISTANCE_FEATHER: - uiItemR(layout, ptr, "falloff", DEFAULT_FLAGS, nullptr, ICON_NONE); - break; - } -} - -static void node_composit_buts_inpaint(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "distance", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_despeckle(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "threshold", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "threshold_neighbor", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_diff_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "tolerance", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "falloff", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - -static void node_composit_buts_distance_matte(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiLayout *col, *row; - - col = uiLayoutColumn(layout, true); - - uiItemL(layout, IFACE_("Color Space:"), ICON_NONE); - row = uiLayoutRow(layout, false); - uiItemR(row, ptr, "channel", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - - uiItemR(col, ptr, "tolerance", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "falloff", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - -static void node_composit_buts_color_spill(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *row, *col; - - uiItemL(layout, IFACE_("Despill Channel:"), ICON_NONE); - row = uiLayoutRow(layout, false); - uiItemR(row, ptr, "channel", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "limit_method", DEFAULT_FLAGS, nullptr, ICON_NONE); - - if (RNA_enum_get(ptr, "limit_method") == 0) { - uiItemL(col, IFACE_("Limiting Channel:"), ICON_NONE); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "limit_channel", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - } - - uiItemR(col, ptr, "ratio", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "use_unspill", DEFAULT_FLAGS, nullptr, ICON_NONE); - if (RNA_boolean_get(ptr, "use_unspill") == true) { - uiItemR(col, ptr, "unspill_red", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "unspill_green", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "unspill_blue", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - } -} - -static void node_composit_buts_chroma_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "tolerance", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "threshold", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, true); - /* Removed for now. */ - // uiItemR(col, ptr, "lift", UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - /* Removed for now. */ - // uiItemR(col, ptr, "shadow_adjust", UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - -static void node_composit_buts_color_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "color_hue", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "color_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "color_value", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - -static void node_composit_buts_channel_matte(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiLayout *col, *row; - - uiItemL(layout, IFACE_("Color Space:"), ICON_NONE); - row = uiLayoutRow(layout, false); - uiItemR(row, ptr, "color_space", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, false); - uiItemL(col, IFACE_("Key Channel:"), ICON_NONE); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "matte_channel", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - - col = uiLayoutColumn(layout, false); - - uiItemR(col, ptr, "limit_method", DEFAULT_FLAGS, nullptr, ICON_NONE); - if (RNA_enum_get(ptr, "limit_method") == 0) { - uiItemL(col, IFACE_("Limiting Channel:"), ICON_NONE); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "limit_channel", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - } - - uiItemR(col, ptr, "limit_max", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "limit_min", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - -static void node_composit_buts_luma_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "limit_max", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(col, ptr, "limit_min", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - -static void node_composit_buts_map_uv(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "alpha", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_id_mask(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "index", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "use_antialiasing", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_file_output(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - PointerRNA imfptr = RNA_pointer_get(ptr, "format"); - const bool multilayer = RNA_enum_get(&imfptr, "file_format") == R_IMF_IMTYPE_MULTILAYER; - - if (multilayer) { - uiItemL(layout, IFACE_("Path:"), ICON_NONE); - } - else { - uiItemL(layout, IFACE_("Base Path:"), ICON_NONE); - } - uiItemR(layout, ptr, "base_path", DEFAULT_FLAGS, "", ICON_NONE); -} -static void node_composit_buts_file_output_ex(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - Scene *scene = CTX_data_scene(C); - PointerRNA imfptr = RNA_pointer_get(ptr, "format"); - PointerRNA active_input_ptr, op_ptr; - uiLayout *row, *col; - const bool multilayer = RNA_enum_get(&imfptr, "file_format") == R_IMF_IMTYPE_MULTILAYER; - const bool is_exr = RNA_enum_get(&imfptr, "file_format") == R_IMF_IMTYPE_OPENEXR; - const bool is_multiview = (scene->r.scemode & R_MULTIVIEW) != 0; - - node_composit_buts_file_output(layout, C, ptr); - uiTemplateImageSettings(layout, &imfptr, false); - - /* disable stereo output for multilayer, too much work for something that no one will use */ - /* if someone asks for that we can implement it */ - if (is_multiview) { - uiTemplateImageFormatViews(layout, &imfptr, nullptr); - } - - uiItemS(layout); - - uiItemO(layout, IFACE_("Add Input"), ICON_ADD, "NODE_OT_output_file_add_socket"); - - row = uiLayoutRow(layout, false); - col = uiLayoutColumn(row, true); - - const int active_index = RNA_int_get(ptr, "active_input_index"); - /* using different collection properties if multilayer format is enabled */ - if (multilayer) { - uiTemplateList(col, - C, - "UI_UL_list", - "file_output_node", - ptr, - "layer_slots", - ptr, - "active_input_index", - nullptr, - 0, - 0, - 0, - 0, - UI_TEMPLATE_LIST_FLAG_NONE); - RNA_property_collection_lookup_int( - ptr, RNA_struct_find_property(ptr, "layer_slots"), active_index, &active_input_ptr); - } - else { - uiTemplateList(col, - C, - "UI_UL_list", - "file_output_node", - ptr, - "file_slots", - ptr, - "active_input_index", - nullptr, - 0, - 0, - 0, - 0, - UI_TEMPLATE_LIST_FLAG_NONE); - RNA_property_collection_lookup_int( - ptr, RNA_struct_find_property(ptr, "file_slots"), active_index, &active_input_ptr); - } - /* XXX collection lookup does not return the ID part of the pointer, - * setting this manually here */ - active_input_ptr.owner_id = ptr->owner_id; - - col = uiLayoutColumn(row, true); - wmOperatorType *ot = WM_operatortype_find("NODE_OT_output_file_move_active_socket", false); - uiItemFullO_ptr(col, ot, "", ICON_TRIA_UP, nullptr, WM_OP_INVOKE_DEFAULT, 0, &op_ptr); - RNA_enum_set(&op_ptr, "direction", 1); - uiItemFullO_ptr(col, ot, "", ICON_TRIA_DOWN, nullptr, WM_OP_INVOKE_DEFAULT, 0, &op_ptr); - RNA_enum_set(&op_ptr, "direction", 2); - - if (active_input_ptr.data) { - if (multilayer) { - col = uiLayoutColumn(layout, true); - - uiItemL(col, IFACE_("Layer:"), ICON_NONE); - row = uiLayoutRow(col, false); - uiItemR(row, &active_input_ptr, "name", DEFAULT_FLAGS, "", ICON_NONE); - uiItemFullO(row, - "NODE_OT_output_file_remove_active_socket", - "", - ICON_X, - nullptr, - WM_OP_EXEC_DEFAULT, - UI_ITEM_R_ICON_ONLY, - nullptr); - } - else { - col = uiLayoutColumn(layout, true); - - uiItemL(col, IFACE_("File Subpath:"), ICON_NONE); - row = uiLayoutRow(col, false); - uiItemR(row, &active_input_ptr, "path", DEFAULT_FLAGS, "", ICON_NONE); - uiItemFullO(row, - "NODE_OT_output_file_remove_active_socket", - "", - ICON_X, - nullptr, - WM_OP_EXEC_DEFAULT, - UI_ITEM_R_ICON_ONLY, - nullptr); - - /* format details for individual files */ - imfptr = RNA_pointer_get(&active_input_ptr, "format"); - - col = uiLayoutColumn(layout, true); - uiItemL(col, IFACE_("Format:"), ICON_NONE); - uiItemR(col, &active_input_ptr, "use_node_format", DEFAULT_FLAGS, nullptr, ICON_NONE); - - const bool is_socket_exr = RNA_enum_get(&imfptr, "file_format") == R_IMF_IMTYPE_OPENEXR; - const bool use_node_format = RNA_boolean_get(&active_input_ptr, "use_node_format"); - - if ((!is_exr && use_node_format) || (!is_socket_exr && !use_node_format)) { - uiItemR(col, &active_input_ptr, "save_as_render", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - - col = uiLayoutColumn(layout, false); - uiLayoutSetActive(col, use_node_format == false); - uiTemplateImageSettings(col, &imfptr, false); - - if (is_multiview) { - uiTemplateImageFormatViews(layout, &imfptr, nullptr); - } - } - } -} - -static void node_composit_buts_scale(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "space", DEFAULT_FLAGS, "", ICON_NONE); - - if (RNA_enum_get(ptr, "space") == CMP_SCALE_RENDERPERCENT) { - uiLayout *row; - uiItemR(layout, ptr, "frame_method", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, nullptr, ICON_NONE); - row = uiLayoutRow(layout, true); - uiItemR(row, ptr, "offset_x", DEFAULT_FLAGS, "X", ICON_NONE); - uiItemR(row, ptr, "offset_y", DEFAULT_FLAGS, "Y", ICON_NONE); - } -} - -static void node_composit_buts_rotate(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "filter_type", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_invert(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - col = uiLayoutColumn(layout, false); - uiItemR(col, ptr, "invert_rgb", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "invert_alpha", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_premulkey(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "mapping", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_view_levels(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "channel", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_colorbalance(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *split, *col, *row; - - uiItemR(layout, ptr, "correction_method", DEFAULT_FLAGS, nullptr, ICON_NONE); - - if (RNA_enum_get(ptr, "correction_method") == 0) { - - split = uiLayoutSplit(layout, 0.0f, false); - col = uiLayoutColumn(split, false); - uiTemplateColorPicker(col, ptr, "lift", true, true, false, true); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "lift", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(split, false); - uiTemplateColorPicker(col, ptr, "gamma", true, true, true, true); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "gamma", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(split, false); - uiTemplateColorPicker(col, ptr, "gain", true, true, true, true); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "gain", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - else { - - split = uiLayoutSplit(layout, 0.0f, false); - col = uiLayoutColumn(split, false); - uiTemplateColorPicker(col, ptr, "offset", true, true, false, true); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "offset", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "offset_basis", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(split, false); - uiTemplateColorPicker(col, ptr, "power", true, true, false, true); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "power", DEFAULT_FLAGS, nullptr, ICON_NONE); - - col = uiLayoutColumn(split, false); - uiTemplateColorPicker(col, ptr, "slope", true, true, false, true); - row = uiLayoutRow(col, false); - uiItemR(row, ptr, "slope", DEFAULT_FLAGS, nullptr, ICON_NONE); - } -} -static void node_composit_buts_colorbalance_ex(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiItemR(layout, ptr, "correction_method", DEFAULT_FLAGS, nullptr, ICON_NONE); - - if (RNA_enum_get(ptr, "correction_method") == 0) { - - uiTemplateColorPicker(layout, ptr, "lift", true, true, false, true); - uiItemR(layout, ptr, "lift", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiTemplateColorPicker(layout, ptr, "gamma", true, true, true, true); - uiItemR(layout, ptr, "gamma", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiTemplateColorPicker(layout, ptr, "gain", true, true, true, true); - uiItemR(layout, ptr, "gain", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - else { - uiTemplateColorPicker(layout, ptr, "offset", true, true, false, true); - uiItemR(layout, ptr, "offset", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiTemplateColorPicker(layout, ptr, "power", true, true, false, true); - uiItemR(layout, ptr, "power", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiTemplateColorPicker(layout, ptr, "slope", true, true, false, true); - uiItemR(layout, ptr, "slope", DEFAULT_FLAGS, nullptr, ICON_NONE); - } -} - -static void node_composit_buts_huecorrect(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - CurveMapping *cumap = (CurveMapping *)node->storage; - - if (_sample_col[0] != SAMPLE_FLT_ISNONE) { - cumap->flag |= CUMA_DRAW_SAMPLE; - copy_v3_v3(cumap->sample, _sample_col); - } - else { - cumap->flag &= ~CUMA_DRAW_SAMPLE; - } - - uiTemplateCurveMapping(layout, ptr, "mapping", 'h', false, false, false, false); -} - -static void node_composit_buts_ycc(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "mode", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_movieclip(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - uiTemplateID(layout, - C, - ptr, - "clip", - nullptr, - "CLIP_OT_open", - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); -} - -static void node_composit_buts_movieclip_ex(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - PointerRNA clipptr; - - uiTemplateID(layout, - C, - ptr, - "clip", - nullptr, - "CLIP_OT_open", - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - if (!node->id) { - return; - } - - clipptr = RNA_pointer_get(ptr, "clip"); - - uiTemplateColorspaceSettings(layout, &clipptr, "colorspace_settings"); -} - -static void node_composit_buts_stabilize2d(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - - uiTemplateID(layout, - C, - ptr, - "clip", - nullptr, - "CLIP_OT_open", - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - if (!node->id) { - return; - } - - uiItemR(layout, ptr, "filter_type", DEFAULT_FLAGS, "", ICON_NONE); - uiItemR(layout, ptr, "invert", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_translate(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "use_relative", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "wrap_axis", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_transform(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "filter_type", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_moviedistortion(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - - uiTemplateID(layout, - C, - ptr, - "clip", - nullptr, - "CLIP_OT_open", - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - if (!node->id) { - return; - } - - uiItemR(layout, ptr, "distortion_type", DEFAULT_FLAGS, "", ICON_NONE); -} - -static void node_composit_buts_colorcorrection(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiLayout *row; - - row = uiLayoutRow(layout, false); - uiItemR(row, ptr, "red", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(row, ptr, "green", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(row, ptr, "blue", DEFAULT_FLAGS, nullptr, ICON_NONE); - - row = uiLayoutRow(layout, false); - uiItemL(row, "", ICON_NONE); - uiItemL(row, IFACE_("Saturation"), ICON_NONE); - uiItemL(row, IFACE_("Contrast"), ICON_NONE); - uiItemL(row, IFACE_("Gamma"), ICON_NONE); - uiItemL(row, IFACE_("Gain"), ICON_NONE); - uiItemL(row, IFACE_("Lift"), ICON_NONE); - - row = uiLayoutRow(layout, false); - uiItemL(row, IFACE_("Master"), ICON_NONE); - uiItemR(row, ptr, "master_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "master_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "master_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "master_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "master_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - - row = uiLayoutRow(layout, false); - uiItemL(row, IFACE_("Highlights"), ICON_NONE); - uiItemR(row, ptr, "highlights_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "highlights_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "highlights_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "highlights_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "highlights_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - - row = uiLayoutRow(layout, false); - uiItemL(row, IFACE_("Midtones"), ICON_NONE); - uiItemR(row, ptr, "midtones_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "midtones_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "midtones_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "midtones_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "midtones_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - - row = uiLayoutRow(layout, false); - uiItemL(row, IFACE_("Shadows"), ICON_NONE); - uiItemR(row, ptr, "shadows_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "shadows_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "shadows_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "shadows_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - uiItemR(row, ptr, "shadows_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, "", ICON_NONE); - - row = uiLayoutRow(layout, false); - uiItemR(row, ptr, "midtones_start", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "midtones_end", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - -static void node_composit_buts_colorcorrection_ex(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiLayout *row; - - row = uiLayoutRow(layout, false); - uiItemR(row, ptr, "red", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(row, ptr, "green", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(row, ptr, "blue", DEFAULT_FLAGS, nullptr, ICON_NONE); - row = layout; - uiItemL(row, IFACE_("Saturation"), ICON_NONE); - uiItemR(row, ptr, "master_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "highlights_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "midtones_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "shadows_saturation", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - - uiItemL(row, IFACE_("Contrast"), ICON_NONE); - uiItemR(row, ptr, "master_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "highlights_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "midtones_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "shadows_contrast", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - - uiItemL(row, IFACE_("Gamma"), ICON_NONE); - uiItemR(row, ptr, "master_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "highlights_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "midtones_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "shadows_gamma", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - - uiItemL(row, IFACE_("Gain"), ICON_NONE); - uiItemR(row, ptr, "master_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "highlights_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "midtones_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "shadows_gain", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - - uiItemL(row, IFACE_("Lift"), ICON_NONE); - uiItemR(row, ptr, "master_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "highlights_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "midtones_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "shadows_lift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - - row = uiLayoutRow(layout, false); - uiItemR(row, ptr, "midtones_start", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(row, ptr, "midtones_end", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_set_alpha(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "mode", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_switch(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "check", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_switch_view_ex(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *UNUSED(ptr)) -{ - uiItemFullO(layout, - "NODE_OT_switch_view_update", - "Update Views", - ICON_FILE_REFRESH, - nullptr, - WM_OP_INVOKE_DEFAULT, - 0, - nullptr); -} - -static void node_composit_buts_boxmask(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +static void node_composit_buts_huecorrect(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { - uiLayout *row; - - row = uiLayoutRow(layout, true); - uiItemR(row, ptr, "x", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(row, ptr, "y", DEFAULT_FLAGS, nullptr, ICON_NONE); - - row = uiLayoutRow(layout, true); - uiItemR(row, ptr, "width", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "height", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); + bNode *node = (bNode *)ptr->data; + CurveMapping *cumap = (CurveMapping *)node->storage; - uiItemR(layout, ptr, "rotation", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "mask_type", DEFAULT_FLAGS, nullptr, ICON_NONE); -} + if (_sample_col[0] != SAMPLE_FLT_ISNONE) { + cumap->flag |= CUMA_DRAW_SAMPLE; + copy_v3_v3(cumap->sample, _sample_col); + } + else { + cumap->flag &= ~CUMA_DRAW_SAMPLE; + } -static void node_composit_buts_bokehimage(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "flaps", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "angle", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "rounding", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(layout, ptr, "catadioptric", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(layout, ptr, "shift", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); + uiTemplateCurveMapping(layout, ptr, "mapping", 'h', false, false, false, false); } -static void node_composit_buts_bokehblur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +static void node_composit_buts_ycc(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { - uiItemR(layout, ptr, "use_variable_size", DEFAULT_FLAGS, nullptr, ICON_NONE); - // uiItemR(layout, ptr, "f_stop", DEFAULT_FLAGS, nullptr, ICON_NONE); /* UNUSED */ - uiItemR(layout, ptr, "blur_max", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "use_extended_bounds", DEFAULT_FLAGS, nullptr, ICON_NONE); + uiItemR(layout, ptr, "mode", DEFAULT_FLAGS, "", ICON_NONE); } static void node_composit_backdrop_viewer( @@ -2246,221 +1235,6 @@ static void node_composit_backdrop_ellipsemask( immUnbindProgram(); } -static void node_composit_buts_ellipsemask(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *row; - row = uiLayoutRow(layout, true); - uiItemR(row, ptr, "x", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(row, ptr, "y", DEFAULT_FLAGS, nullptr, ICON_NONE); - row = uiLayoutRow(layout, true); - uiItemR(row, ptr, "width", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - uiItemR(row, ptr, "height", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); - - uiItemR(layout, ptr, "rotation", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "mask_type", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_composite(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "use_alpha", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_viewer(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "use_alpha", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_viewer_ex(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiLayout *col; - - uiItemR(layout, ptr, "use_alpha", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "tile_order", DEFAULT_FLAGS, nullptr, ICON_NONE); - if (RNA_enum_get(ptr, "tile_order") == 0) { - col = uiLayoutColumn(layout, true); - uiItemR(col, ptr, "center_x", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(col, ptr, "center_y", DEFAULT_FLAGS, nullptr, ICON_NONE); - } -} - -static void node_composit_buts_mask(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - - uiTemplateID(layout, - C, - ptr, - "mask", - nullptr, - nullptr, - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - uiItemR(layout, ptr, "use_feather", DEFAULT_FLAGS, nullptr, ICON_NONE); - - uiItemR(layout, ptr, "size_source", DEFAULT_FLAGS, "", ICON_NONE); - - if (node->custom1 & (CMP_NODEFLAG_MASK_FIXED | CMP_NODEFLAG_MASK_FIXED_SCENE)) { - uiItemR(layout, ptr, "size_x", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "size_y", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - - uiItemR(layout, ptr, "use_motion_blur", DEFAULT_FLAGS, nullptr, ICON_NONE); - if (node->custom1 & CMP_NODEFLAG_MASK_MOTION_BLUR) { - uiItemR(layout, ptr, "motion_blur_samples", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "motion_blur_shutter", DEFAULT_FLAGS, nullptr, ICON_NONE); - } -} - -static void node_composit_buts_keyingscreen(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - - uiTemplateID(layout, - C, - ptr, - "clip", - nullptr, - nullptr, - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - if (node->id) { - MovieClip *clip = (MovieClip *)node->id; - uiLayout *col; - PointerRNA tracking_ptr; - - RNA_pointer_create(&clip->id, &RNA_MovieTracking, &clip->tracking, &tracking_ptr); - - col = uiLayoutColumn(layout, true); - uiItemPointerR(col, ptr, "tracking_object", &tracking_ptr, "objects", "", ICON_OBJECT_DATA); - } -} - -static void node_composit_buts_keying(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - /* bNode *node = (bNode*)ptr->data; */ /* UNUSED */ - - uiItemR(layout, ptr, "blur_pre", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "screen_balance", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "despill_factor", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "despill_balance", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "edge_kernel_radius", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "edge_kernel_tolerance", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "clip_black", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "clip_white", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "dilate_distance", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "feather_falloff", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "feather_distance", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "blur_post", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_trackpos(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - - uiTemplateID(layout, - C, - ptr, - "clip", - nullptr, - "CLIP_OT_open", - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - if (node->id) { - MovieClip *clip = (MovieClip *)node->id; - MovieTracking *tracking = &clip->tracking; - MovieTrackingObject *object; - uiLayout *col; - PointerRNA tracking_ptr; - NodeTrackPosData *data = (NodeTrackPosData *)node->storage; - - RNA_pointer_create(&clip->id, &RNA_MovieTracking, tracking, &tracking_ptr); - - col = uiLayoutColumn(layout, false); - uiItemPointerR(col, ptr, "tracking_object", &tracking_ptr, "objects", "", ICON_OBJECT_DATA); - - object = BKE_tracking_object_get_named(tracking, data->tracking_object); - if (object) { - PointerRNA object_ptr; - - RNA_pointer_create(&clip->id, &RNA_MovieTrackingObject, object, &object_ptr); - - uiItemPointerR(col, ptr, "track_name", &object_ptr, "tracks", "", ICON_ANIM_DATA); - } - else { - uiItemR(layout, ptr, "track_name", DEFAULT_FLAGS, "", ICON_ANIM_DATA); - } - - uiItemR(layout, ptr, "position", DEFAULT_FLAGS, nullptr, ICON_NONE); - - if (ELEM(node->custom1, CMP_TRACKPOS_RELATIVE_FRAME, CMP_TRACKPOS_ABSOLUTE_FRAME)) { - uiItemR(layout, ptr, "frame_relative", DEFAULT_FLAGS, nullptr, ICON_NONE); - } - } -} - -static void node_composit_buts_planetrackdeform(uiLayout *layout, bContext *C, PointerRNA *ptr) -{ - bNode *node = (bNode *)ptr->data; - NodePlaneTrackDeformData *data = (NodePlaneTrackDeformData *)node->storage; - - uiTemplateID(layout, - C, - ptr, - "clip", - nullptr, - "CLIP_OT_open", - nullptr, - UI_TEMPLATE_ID_FILTER_ALL, - false, - nullptr); - - if (node->id) { - MovieClip *clip = (MovieClip *)node->id; - MovieTracking *tracking = &clip->tracking; - MovieTrackingObject *object; - uiLayout *col; - PointerRNA tracking_ptr; - - RNA_pointer_create(&clip->id, &RNA_MovieTracking, tracking, &tracking_ptr); - - col = uiLayoutColumn(layout, false); - uiItemPointerR(col, ptr, "tracking_object", &tracking_ptr, "objects", "", ICON_OBJECT_DATA); - - object = BKE_tracking_object_get_named(tracking, data->tracking_object); - if (object) { - PointerRNA object_ptr; - - RNA_pointer_create(&clip->id, &RNA_MovieTrackingObject, object, &object_ptr); - - uiItemPointerR( - col, ptr, "plane_track_name", &object_ptr, "plane_tracks", "", ICON_ANIM_DATA); - } - else { - uiItemR(layout, ptr, "plane_track_name", 0, "", ICON_ANIM_DATA); - } - } - - uiItemR(layout, ptr, "use_motion_blur", DEFAULT_FLAGS, nullptr, ICON_NONE); - if (data->flag & CMP_NODEFLAG_PLANETRACKDEFORM_MOTION_BLUR) { - uiItemR(layout, ptr, "motion_blur_samples", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "motion_blur_shutter", DEFAULT_FLAGS, nullptr, ICON_NONE); - } -} - -static void node_composit_buts_sunbeams(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "source", DEFAULT_FLAGS | UI_ITEM_R_EXPAND, "", ICON_NONE); - uiItemR(layout, ptr, "ray_length", DEFAULT_FLAGS | UI_ITEM_R_SLIDER, nullptr, ICON_NONE); -} - static void node_composit_buts_cryptomatte_legacy(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) @@ -2536,31 +1310,6 @@ static void node_composit_buts_cryptomatte(uiLayout *layout, bContext *C, Pointe uiTemplateCryptoPicker(row, ptr, "remove", ICON_REMOVE); } -static void node_composit_buts_brightcontrast(uiLayout *layout, - bContext *UNUSED(C), - PointerRNA *ptr) -{ - uiItemR(layout, ptr, "use_premultiply", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - -static void node_composit_buts_denoise(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ -#ifndef WITH_OPENIMAGEDENOISE - uiItemL(layout, IFACE_("Disabled, built without OpenImageDenoise"), ICON_ERROR); -#else - /* Always supported through Accelerate framework BNNS on macOS. */ -# ifndef __APPLE__ - if (!BLI_cpu_support_sse41()) { - uiItemL(layout, IFACE_("Disabled, CPU with SSE4.1 is required"), ICON_ERROR); - } -# endif -#endif - - uiItemL(layout, IFACE_("Prefilter:"), ICON_NONE); - uiItemR(layout, ptr, "prefilter", DEFAULT_FLAGS, nullptr, ICON_NONE); - uiItemR(layout, ptr, "use_hdr", DEFAULT_FLAGS, nullptr, ICON_NONE); -} - /* only once called */ static void node_composit_set_butfunc(bNodeType *ntype) { @@ -2569,15 +1318,6 @@ static void node_composit_set_butfunc(bNodeType *ntype) ntype->draw_buttons = node_composit_buts_image; ntype->draw_buttons_ex = node_composit_buts_image_ex; break; - case CMP_NODE_R_LAYERS: - ntype->draw_buttons = node_composit_buts_viewlayers; - break; - case CMP_NODE_NORMAL: - ntype->draw_buttons = node_buts_normal; - break; - case CMP_NODE_CURVE_VEC: - ntype->draw_buttons = node_buts_curvevec; - break; case CMP_NODE_CURVE_RGB: ntype->draw_buttons = node_buts_curvecol; break; @@ -2587,210 +1327,34 @@ static void node_composit_set_butfunc(bNodeType *ntype) case CMP_NODE_RGB: ntype->draw_buttons = node_buts_rgb; break; - case CMP_NODE_FLIP: - ntype->draw_buttons = node_composit_buts_flip; - break; - case CMP_NODE_SPLITVIEWER: - ntype->draw_buttons = node_composit_buts_splitviewer; - break; case CMP_NODE_MIX_RGB: ntype->draw_buttons = node_buts_mix_rgb; break; case CMP_NODE_VALTORGB: ntype->draw_buttons = node_buts_colorramp; break; - case CMP_NODE_CROP: - ntype->draw_buttons = node_composit_buts_crop; - break; - case CMP_NODE_BLUR: - ntype->draw_buttons = node_composit_buts_blur; - break; - case CMP_NODE_DBLUR: - ntype->draw_buttons = node_composit_buts_dblur; - break; - case CMP_NODE_BILATERALBLUR: - ntype->draw_buttons = node_composit_buts_bilateralblur; - break; - case CMP_NODE_DEFOCUS: - ntype->draw_buttons = node_composit_buts_defocus; - break; - case CMP_NODE_ANTIALIASING: - ntype->draw_buttons = node_composit_buts_antialiasing; - break; - case CMP_NODE_GLARE: - ntype->draw_buttons = node_composit_buts_glare; - break; - case CMP_NODE_TONEMAP: - ntype->draw_buttons = node_composit_buts_tonemap; - break; - case CMP_NODE_LENSDIST: - ntype->draw_buttons = node_composit_buts_lensdist; - break; - case CMP_NODE_VECBLUR: - ntype->draw_buttons = node_composit_buts_vecblur; - break; - case CMP_NODE_FILTER: - ntype->draw_buttons = node_composit_buts_filter; - break; - case CMP_NODE_MAP_VALUE: - ntype->draw_buttons = node_composit_buts_map_value; - break; - case CMP_NODE_MAP_RANGE: - ntype->draw_buttons = node_composit_buts_map_range; - break; case CMP_NODE_TIME: ntype->draw_buttons = node_buts_time; break; - case CMP_NODE_ALPHAOVER: - ntype->draw_buttons = node_composit_buts_alphaover; - break; case CMP_NODE_TEXTURE: ntype->draw_buttons = node_buts_texture; break; - case CMP_NODE_DILATEERODE: - ntype->draw_buttons = node_composit_buts_dilateerode; - break; - case CMP_NODE_INPAINT: - ntype->draw_buttons = node_composit_buts_inpaint; - break; - case CMP_NODE_DESPECKLE: - ntype->draw_buttons = node_composit_buts_despeckle; - break; - case CMP_NODE_OUTPUT_FILE: - ntype->draw_buttons = node_composit_buts_file_output; - ntype->draw_buttons_ex = node_composit_buts_file_output_ex; - break; - case CMP_NODE_DIFF_MATTE: - ntype->draw_buttons = node_composit_buts_diff_matte; - break; - case CMP_NODE_DIST_MATTE: - ntype->draw_buttons = node_composit_buts_distance_matte; - break; - case CMP_NODE_COLOR_SPILL: - ntype->draw_buttons = node_composit_buts_color_spill; - break; - case CMP_NODE_CHROMA_MATTE: - ntype->draw_buttons = node_composit_buts_chroma_matte; - break; - case CMP_NODE_COLOR_MATTE: - ntype->draw_buttons = node_composit_buts_color_matte; - break; - case CMP_NODE_SCALE: - ntype->draw_buttons = node_composit_buts_scale; - break; - case CMP_NODE_ROTATE: - ntype->draw_buttons = node_composit_buts_rotate; - break; - case CMP_NODE_CHANNEL_MATTE: - ntype->draw_buttons = node_composit_buts_channel_matte; - break; - case CMP_NODE_LUMA_MATTE: - ntype->draw_buttons = node_composit_buts_luma_matte; - break; - case CMP_NODE_MAP_UV: - ntype->draw_buttons = node_composit_buts_map_uv; - break; - case CMP_NODE_ID_MASK: - ntype->draw_buttons = node_composit_buts_id_mask; - break; - case CMP_NODE_DOUBLEEDGEMASK: - ntype->draw_buttons = node_composit_buts_double_edge_mask; - break; case CMP_NODE_MATH: ntype->draw_buttons = node_buts_math; break; - case CMP_NODE_INVERT: - ntype->draw_buttons = node_composit_buts_invert; - break; - case CMP_NODE_PREMULKEY: - ntype->draw_buttons = node_composit_buts_premulkey; - break; - case CMP_NODE_VIEW_LEVELS: - ntype->draw_buttons = node_composit_buts_view_levels; - break; - case CMP_NODE_COLORBALANCE: - ntype->draw_buttons = node_composit_buts_colorbalance; - ntype->draw_buttons_ex = node_composit_buts_colorbalance_ex; - break; case CMP_NODE_HUECORRECT: ntype->draw_buttons = node_composit_buts_huecorrect; break; - case CMP_NODE_ZCOMBINE: - ntype->draw_buttons = node_composit_buts_zcombine; - break; case CMP_NODE_COMBYCCA: case CMP_NODE_SEPYCCA: ntype->draw_buttons = node_composit_buts_ycc; break; - case CMP_NODE_MOVIECLIP: - ntype->draw_buttons = node_composit_buts_movieclip; - ntype->draw_buttons_ex = node_composit_buts_movieclip_ex; - break; - case CMP_NODE_STABILIZE2D: - ntype->draw_buttons = node_composit_buts_stabilize2d; - break; - case CMP_NODE_TRANSFORM: - ntype->draw_buttons = node_composit_buts_transform; - break; - case CMP_NODE_TRANSLATE: - ntype->draw_buttons = node_composit_buts_translate; - break; - case CMP_NODE_MOVIEDISTORTION: - ntype->draw_buttons = node_composit_buts_moviedistortion; - break; - case CMP_NODE_COLORCORRECTION: - ntype->draw_buttons = node_composit_buts_colorcorrection; - ntype->draw_buttons_ex = node_composit_buts_colorcorrection_ex; - break; - case CMP_NODE_SETALPHA: - ntype->draw_buttons = node_composit_buts_set_alpha; - break; - case CMP_NODE_SWITCH: - ntype->draw_buttons = node_composit_buts_switch; - break; - case CMP_NODE_SWITCH_VIEW: - ntype->draw_buttons_ex = node_composit_buts_switch_view_ex; - break; case CMP_NODE_MASK_BOX: - ntype->draw_buttons = node_composit_buts_boxmask; ntype->draw_backdrop = node_composit_backdrop_boxmask; break; case CMP_NODE_MASK_ELLIPSE: - ntype->draw_buttons = node_composit_buts_ellipsemask; ntype->draw_backdrop = node_composit_backdrop_ellipsemask; break; - case CMP_NODE_BOKEHIMAGE: - ntype->draw_buttons = node_composit_buts_bokehimage; - break; - case CMP_NODE_BOKEHBLUR: - ntype->draw_buttons = node_composit_buts_bokehblur; - break; - case CMP_NODE_VIEWER: - ntype->draw_buttons = node_composit_buts_viewer; - ntype->draw_buttons_ex = node_composit_buts_viewer_ex; - ntype->draw_backdrop = node_composit_backdrop_viewer; - break; - case CMP_NODE_COMPOSITE: - ntype->draw_buttons = node_composit_buts_composite; - break; - case CMP_NODE_MASK: - ntype->draw_buttons = node_composit_buts_mask; - break; - case CMP_NODE_KEYINGSCREEN: - ntype->draw_buttons = node_composit_buts_keyingscreen; - break; - case CMP_NODE_KEYING: - ntype->draw_buttons = node_composit_buts_keying; - break; - case CMP_NODE_TRACKPOS: - ntype->draw_buttons = node_composit_buts_trackpos; - break; - case CMP_NODE_PLANETRACKDEFORM: - ntype->draw_buttons = node_composit_buts_planetrackdeform; - break; - case CMP_NODE_SUNBEAMS: - ntype->draw_buttons = node_composit_buts_sunbeams; - break; case CMP_NODE_CRYPTOMATTE: ntype->draw_buttons = node_composit_buts_cryptomatte; break; @@ -2798,11 +1362,8 @@ static void node_composit_set_butfunc(bNodeType *ntype) ntype->draw_buttons = node_composit_buts_cryptomatte_legacy; ntype->draw_buttons_ex = node_composit_buts_cryptomatte_legacy_ex; break; - case CMP_NODE_BRIGHTCONTRAST: - ntype->draw_buttons = node_composit_buts_brightcontrast; - break; - case CMP_NODE_DENOISE: - ntype->draw_buttons = node_composit_buts_denoise; + case CMP_NODE_VIEWER: + ntype->draw_backdrop = node_composit_backdrop_viewer; break; } } -- cgit v1.2.3