Merge branch 'blender-v2.81-release'
This commit is contained in:
commit
d7b3b3b22f
|
@ -214,9 +214,6 @@ CCL_NAMESPACE_END
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
#define NODES_GROUP(group) ((group) <= __NODES_MAX_GROUP__)
|
||||
#define NODES_FEATURE(feature) ((__NODES_FEATURES__ & (feature)) != 0)
|
||||
|
||||
/* Main Interpreter Loop */
|
||||
ccl_device_noinline void svm_eval_nodes(KernelGlobals *kg,
|
||||
ShaderData *sd,
|
||||
|
@ -545,9 +542,6 @@ ccl_device_noinline void svm_eval_nodes(KernelGlobals *kg,
|
|||
}
|
||||
}
|
||||
|
||||
#undef NODES_GROUP
|
||||
#undef NODES_FEATURE
|
||||
|
||||
CCL_NAMESPACE_END
|
||||
|
||||
#endif /* __SVM_H__ */
|
||||
|
|
|
@ -48,12 +48,17 @@ CCL_NAMESPACE_BEGIN
|
|||
#define NODE_FEATURE_HAIR (1 << 1)
|
||||
#define NODE_FEATURE_BUMP (1 << 2)
|
||||
#define NODE_FEATURE_BUMP_STATE (1 << 3)
|
||||
#define NODE_FEATURE_VORONOI_EXTRA (1 << 4)
|
||||
/* TODO(sergey): Consider using something like ((uint)(-1)).
|
||||
* Need to check carefully operand types around usage of this
|
||||
* define first.
|
||||
*/
|
||||
#define NODE_FEATURE_ALL \
|
||||
(NODE_FEATURE_VOLUME | NODE_FEATURE_HAIR | NODE_FEATURE_BUMP | NODE_FEATURE_BUMP_STATE)
|
||||
(NODE_FEATURE_VOLUME | NODE_FEATURE_HAIR | NODE_FEATURE_BUMP | NODE_FEATURE_BUMP_STATE | \
|
||||
NODE_FEATURE_VORONOI_EXTRA)
|
||||
|
||||
#define NODES_GROUP(group) ((group) <= __NODES_MAX_GROUP__)
|
||||
#define NODES_FEATURE(feature) ((__NODES_FEATURES__ & (feature)) != 0)
|
||||
|
||||
typedef enum ShaderNodeType {
|
||||
NODE_END = 0,
|
||||
|
|
|
@ -986,6 +986,7 @@ ccl_device void svm_node_tex_voronoi(KernelGlobals *kg,
|
|||
&color_out,
|
||||
&position_out_2d);
|
||||
break;
|
||||
#if NODES_FEATURE(NODE_FEATURE_VORONOI_EXTRA)
|
||||
case NODE_VORONOI_SMOOTH_F1:
|
||||
voronoi_smooth_f1_2d(coord_2d,
|
||||
smoothness,
|
||||
|
@ -996,6 +997,7 @@ ccl_device void svm_node_tex_voronoi(KernelGlobals *kg,
|
|||
&color_out,
|
||||
&position_out_2d);
|
||||
break;
|
||||
#endif
|
||||
case NODE_VORONOI_F2:
|
||||
voronoi_f2_2d(coord_2d,
|
||||
exponent,
|
||||
|
@ -1029,6 +1031,7 @@ ccl_device void svm_node_tex_voronoi(KernelGlobals *kg,
|
|||
&color_out,
|
||||
&position_out);
|
||||
break;
|
||||
#if NODES_FEATURE(NODE_FEATURE_VORONOI_EXTRA)
|
||||
case NODE_VORONOI_SMOOTH_F1:
|
||||
voronoi_smooth_f1_3d(coord,
|
||||
smoothness,
|
||||
|
@ -1039,6 +1042,7 @@ ccl_device void svm_node_tex_voronoi(KernelGlobals *kg,
|
|||
&color_out,
|
||||
&position_out);
|
||||
break;
|
||||
#endif
|
||||
case NODE_VORONOI_F2:
|
||||
voronoi_f2_3d(coord,
|
||||
exponent,
|
||||
|
@ -1060,6 +1064,8 @@ ccl_device void svm_node_tex_voronoi(KernelGlobals *kg,
|
|||
position_out = safe_divide_float3_float(position_out, scale);
|
||||
break;
|
||||
}
|
||||
|
||||
#if NODES_FEATURE(NODE_FEATURE_VORONOI_EXTRA)
|
||||
case 4: {
|
||||
float4 coord_4d = make_float4(coord.x, coord.y, coord.z, w);
|
||||
float4 position_out_4d;
|
||||
|
@ -1106,6 +1112,7 @@ ccl_device void svm_node_tex_voronoi(KernelGlobals *kg,
|
|||
w_out = position_out_4d.w;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
kernel_assert(0);
|
||||
}
|
||||
|
|
|
@ -220,6 +220,18 @@ class VoronoiTextureNode : public TextureNode {
|
|||
return NODE_GROUP_LEVEL_2;
|
||||
}
|
||||
|
||||
virtual int get_feature()
|
||||
{
|
||||
int result = ShaderNode::get_feature();
|
||||
if (dimensions == 4) {
|
||||
result |= NODE_FEATURE_VORONOI_EXTRA;
|
||||
}
|
||||
else if (dimensions >= 2 && feature == NODE_VORONOI_SMOOTH_F1) {
|
||||
result |= NODE_FEATURE_VORONOI_EXTRA;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int dimensions;
|
||||
NodeVoronoiDistanceMetric metric;
|
||||
NodeVoronoiFeature feature;
|
||||
|
|
|
@ -2857,6 +2857,16 @@ static int radial_control_modal(bContext *C, wmOperator *op, const wmEvent *even
|
|||
ED_region_tag_redraw(CTX_wm_region(C));
|
||||
radial_control_update_header(op, C);
|
||||
|
||||
if (ret & OPERATOR_FINISHED) {
|
||||
wmWindowManager *wm = CTX_wm_manager(C);
|
||||
if (wm->op_undo_depth == 0) {
|
||||
ID *id = rc->ptr.owner_id;
|
||||
if (ED_undo_is_legacy_compatible_for_property(C, id)) {
|
||||
ED_undo_push(C, op->type->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ret != OPERATOR_RUNNING_MODAL) {
|
||||
radial_control_cancel(C, op);
|
||||
}
|
||||
|
@ -2874,7 +2884,7 @@ static void WM_OT_radial_control(wmOperatorType *ot)
|
|||
ot->modal = radial_control_modal;
|
||||
ot->cancel = radial_control_cancel;
|
||||
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING;
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_BLOCKING;
|
||||
|
||||
/* all paths relative to the context */
|
||||
PropertyRNA *prop;
|
||||
|
|
Loading…
Reference in New Issue