Nodes: support transparency for link highlight color
Node links that are connected to selected nodes are highlighted using the Wire Select theme color. Now it is possible to change the transparency of this color to allow the actual link color to be visible through the highlight (or to turn of the highlight entirely). Differential Revision: https://developer.blender.org/D12973
This commit is contained in:
parent
567bcb9387
commit
f41d4735e9
|
@ -4329,6 +4329,25 @@ void node_draw_link_bezier(const View2D *v2d,
|
|||
UI_GetThemeColor4fv(th_col2, colors[2]);
|
||||
}
|
||||
|
||||
/* Highlight links connected to selected nodes. */
|
||||
const bool is_fromnode_selected = link->fromnode && link->fromnode->flag & SELECT;
|
||||
const bool is_tonode_selected = link->tonode && link->tonode->flag & SELECT;
|
||||
if (is_fromnode_selected || is_tonode_selected) {
|
||||
float color_selected[4];
|
||||
UI_GetThemeColor4fv(TH_EDGE_SELECT, color_selected);
|
||||
const float alpha = color_selected[3];
|
||||
|
||||
/* Interpolate color if highlight color is not fully transparent. */
|
||||
if (alpha != 0.0) {
|
||||
if (is_fromnode_selected) {
|
||||
interp_v3_v3v3(colors[1], colors[1], color_selected, alpha);
|
||||
}
|
||||
if (is_tonode_selected) {
|
||||
interp_v3_v3v3(colors[2], colors[2], color_selected, alpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (g_batch_link.enabled && !highlighted) {
|
||||
/* Add link to batch. */
|
||||
nodelink_batch_add_link(snode,
|
||||
|
@ -4402,15 +4421,6 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
|
|||
else if (link->flag & NODE_LINK_MUTED) {
|
||||
th_col1 = th_col2 = TH_REDALERT;
|
||||
}
|
||||
else {
|
||||
/* Regular link, highlight if connected to selected node. */
|
||||
if (link->fromnode && link->fromnode->flag & SELECT) {
|
||||
th_col1 = TH_EDGE_SELECT;
|
||||
}
|
||||
if (link->tonode && link->tonode->flag & SELECT) {
|
||||
th_col2 = TH_EDGE_SELECT;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* Invalid link. */
|
||||
|
|
|
@ -2844,7 +2844,7 @@ static void rna_def_userdef_theme_space_node(BlenderRNA *brna)
|
|||
|
||||
prop = RNA_def_property(srna, "wire_select", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "edge_select");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Wire Select", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
|
||||
|
||||
|
|
Loading…
Reference in New Issue