Skip to content

Commit ca42bfb

Browse files
authoredFeb 2, 2022
Merge pull request #57504 from Chaosus/vs_vector2
2 parents 6ff7536 + 59af063 commit ca42bfb

25 files changed

+1975
-665
lines changed
 

‎doc/classes/VisualShaderNode.xml

+9-5
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
<return type="void" />
4848
<argument index="0" name="port" type="int" />
4949
<argument index="1" name="value" type="Variant" />
50+
<argument index="2" name="prev_value" type="Variant" default="null" />
5051
<description>
5152
Sets the default value for the selected input [code]port[/code].
5253
</description>
@@ -71,19 +72,22 @@
7172
<constant name="PORT_TYPE_SCALAR_INT" value="1" enum="PortType">
7273
Integer scalar. Translated to [code]int[/code] type in shader code.
7374
</constant>
74-
<constant name="PORT_TYPE_VECTOR" value="2" enum="PortType">
75+
<constant name="PORT_TYPE_VECTOR_2D" value="2" enum="PortType">
76+
2D vector of floating-point values. Translated to [code]vec2[/code] type in shader code.
77+
</constant>
78+
<constant name="PORT_TYPE_VECTOR" value="3" enum="PortType">
7579
3D vector of floating-point values. Translated to [code]vec3[/code] type in shader code.
7680
</constant>
77-
<constant name="PORT_TYPE_BOOLEAN" value="3" enum="PortType">
81+
<constant name="PORT_TYPE_BOOLEAN" value="4" enum="PortType">
7882
Boolean type. Translated to [code]bool[/code] type in shader code.
7983
</constant>
80-
<constant name="PORT_TYPE_TRANSFORM" value="4" enum="PortType">
84+
<constant name="PORT_TYPE_TRANSFORM" value="5" enum="PortType">
8185
Transform type. Translated to [code]mat4[/code] type in shader code.
8286
</constant>
83-
<constant name="PORT_TYPE_SAMPLER" value="5" enum="PortType">
87+
<constant name="PORT_TYPE_SAMPLER" value="6" enum="PortType">
8488
Sampler type. Translated to reference of sampler uniform in shader code. Can only be used for input ports in non-uniform nodes.
8589
</constant>
86-
<constant name="PORT_TYPE_MAX" value="6" enum="PortType">
90+
<constant name="PORT_TYPE_MAX" value="7" enum="PortType">
8791
Represents the size of the [enum PortType] enum.
8892
</constant>
8993
</constants>

‎doc/classes/VisualShaderNodeClamp.xml

+6-3
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
<constant name="OP_TYPE_INT" value="1" enum="OpType">
2121
An integer scalar.
2222
</constant>
23-
<constant name="OP_TYPE_VECTOR" value="2" enum="OpType">
24-
A vector type.
23+
<constant name="OP_TYPE_VECTOR_2D" value="2" enum="OpType">
24+
A 2D vector type.
2525
</constant>
26-
<constant name="OP_TYPE_MAX" value="3" enum="OpType">
26+
<constant name="OP_TYPE_VECTOR_3D" value="3" enum="OpType">
27+
A 3D vector type.
28+
</constant>
29+
<constant name="OP_TYPE_MAX" value="4" enum="OpType">
2730
Represents the size of the [enum OpType] enum.
2831
</constant>
2932
</constants>

‎doc/classes/VisualShaderNodeCompare.xml

+8-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</tutorials>
1111
<members>
1212
<member name="condition" type="int" setter="set_condition" getter="get_condition" enum="VisualShaderNodeCompare.Condition" default="0">
13-
Extra condition which is applied if [member type] is set to [constant CTYPE_VECTOR].
13+
Extra condition which is applied if [member type] is set to [constant CTYPE_VECTOR_3D].
1414
</member>
1515
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeCompare.Function" default="0">
1616
A comparison function. See [enum Function] for options.
@@ -26,16 +26,19 @@
2626
<constant name="CTYPE_SCALAR_INT" value="1" enum="ComparisonType">
2727
An integer scalar.
2828
</constant>
29-
<constant name="CTYPE_VECTOR" value="2" enum="ComparisonType">
29+
<constant name="CTYPE_VECTOR_2D" value="2" enum="ComparisonType">
30+
A 2D vector type.
31+
</constant>
32+
<constant name="CTYPE_VECTOR_3D" value="3" enum="ComparisonType">
3033
A 3D vector type.
3134
</constant>
32-
<constant name="CTYPE_BOOLEAN" value="3" enum="ComparisonType">
35+
<constant name="CTYPE_BOOLEAN" value="4" enum="ComparisonType">
3336
A boolean type.
3437
</constant>
35-
<constant name="CTYPE_TRANSFORM" value="4" enum="ComparisonType">
38+
<constant name="CTYPE_TRANSFORM" value="5" enum="ComparisonType">
3639
A transform ([code]mat4[/code]) type.
3740
</constant>
38-
<constant name="CTYPE_MAX" value="5" enum="ComparisonType">
41+
<constant name="CTYPE_MAX" value="6" enum="ComparisonType">
3942
Represents the size of the [enum ComparisonType] enum.
4043
</constant>
4144
<constant name="FUNC_EQUAL" value="0" enum="Function">

‎doc/classes/VisualShaderNodeDerivativeFunc.xml

+5-2
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
<constant name="OP_TYPE_SCALAR" value="0" enum="OpType">
2121
A floating-point scalar.
2222
</constant>
23-
<constant name="OP_TYPE_VECTOR" value="1" enum="OpType">
23+
<constant name="OP_TYPE_VECTOR_2D" value="1" enum="OpType">
24+
A 2D vector type.
25+
</constant>
26+
<constant name="OP_TYPE_VECTOR_3D" value="2" enum="OpType">
2427
A 3D vector type.
2528
</constant>
26-
<constant name="OP_TYPE_MAX" value="2" enum="OpType">
29+
<constant name="OP_TYPE_MAX" value="3" enum="OpType">
2730
Represents the size of the [enum OpType] enum.
2831
</constant>
2932
<constant name="FUNC_SUM" value="0" enum="Function">

‎doc/classes/VisualShaderNodeFaceForward.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="VisualShaderNodeFaceForward" inherits="VisualShaderNode" version="4.0">
2+
<class name="VisualShaderNodeFaceForward" inherits="VisualShaderNodeVectorBase" version="4.0">
33
<brief_description>
44
Returns the vector that points in the same direction as a reference vector within the visual shader graph.
55
</brief_description>

‎doc/classes/VisualShaderNodeMix.xml

+12-6
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,21 @@
1515
</members>
1616
<constants>
1717
<constant name="OP_TYPE_SCALAR" value="0" enum="OpType">
18-
A scalar type.
18+
A floating-point scalar.
1919
</constant>
20-
<constant name="OP_TYPE_VECTOR" value="1" enum="OpType">
21-
A vector type.
20+
<constant name="OP_TYPE_VECTOR_2D" value="1" enum="OpType">
21+
A 2D vector type.
2222
</constant>
23-
<constant name="OP_TYPE_VECTOR_SCALAR" value="2" enum="OpType">
24-
A vector type. [code]weight[/code] port is using a scalar type.
23+
<constant name="OP_TYPE_VECTOR_2D_SCALAR" value="2" enum="OpType">
24+
The [code]a[/code] and [code]b[/code] ports use a 2D vector type. The [code]weight[/code] port uses a scalar type.
2525
</constant>
26-
<constant name="OP_TYPE_MAX" value="3" enum="OpType">
26+
<constant name="OP_TYPE_VECTOR_3D" value="3" enum="OpType">
27+
A 3D vector type.
28+
</constant>
29+
<constant name="OP_TYPE_VECTOR_3D_SCALAR" value="4" enum="OpType">
30+
The [code]a[/code] and [code]b[/code] ports use a 3D vector type. The [code]weight[/code] port uses a scalar type.
31+
</constant>
32+
<constant name="OP_TYPE_MAX" value="5" enum="OpType">
2733
Represents the size of the [enum OpType] enum.
2834
</constant>
2935
</constants>

‎doc/classes/VisualShaderNodeMultiplyAdd.xml

+7-4
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@
1515
</members>
1616
<constants>
1717
<constant name="OP_TYPE_SCALAR" value="0" enum="OpType">
18-
A scalar type.
18+
A floating-point scalar type.
1919
</constant>
20-
<constant name="OP_TYPE_VECTOR" value="1" enum="OpType">
21-
A vector type.
20+
<constant name="OP_TYPE_VECTOR_2D" value="1" enum="OpType">
21+
A 2D vector type.
2222
</constant>
23-
<constant name="OP_TYPE_MAX" value="2" enum="OpType">
23+
<constant name="OP_TYPE_VECTOR_3D" value="2" enum="OpType">
24+
A 3D vector type.
25+
</constant>
26+
<constant name="OP_TYPE_MAX" value="3" enum="OpType">
2427
Represents the size of the [enum OpType] enum.
2528
</constant>
2629
</constants>

‎doc/classes/VisualShaderNodeSmoothStep.xml

+12-6
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,21 @@
1616
</members>
1717
<constants>
1818
<constant name="OP_TYPE_SCALAR" value="0" enum="OpType">
19-
A scalar type.
19+
A floating-point scalar type.
2020
</constant>
21-
<constant name="OP_TYPE_VECTOR" value="1" enum="OpType">
22-
A vector type.
21+
<constant name="OP_TYPE_VECTOR_2D" value="1" enum="OpType">
22+
A 2D vector type.
2323
</constant>
24-
<constant name="OP_TYPE_VECTOR_SCALAR" value="2" enum="OpType">
25-
A vector type. [code]edge0[/code] and [code]edge1[/code] are using a scalar type.
24+
<constant name="OP_TYPE_VECTOR_2D_SCALAR" value="2" enum="OpType">
25+
The [code]x[/code] port uses a 2D vector type. The first two ports use a floating-point scalar type.
2626
</constant>
27-
<constant name="OP_TYPE_MAX" value="3" enum="OpType">
27+
<constant name="OP_TYPE_VECTOR_3D" value="3" enum="OpType">
28+
A 3D vector type.
29+
</constant>
30+
<constant name="OP_TYPE_VECTOR_3D_SCALAR" value="4" enum="OpType">
31+
The [code]x[/code] port uses a 3D vector type. The first two ports use a floating-point scalar type.
32+
</constant>
33+
<constant name="OP_TYPE_MAX" value="5" enum="OpType">
2834
Represents the size of the [enum OpType] enum.
2935
</constant>
3036
</constants>

‎doc/classes/VisualShaderNodeStep.xml

+12-6
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,21 @@
1616
</members>
1717
<constants>
1818
<constant name="OP_TYPE_SCALAR" value="0" enum="OpType">
19-
A scalar type.
19+
A floating-point scalar type.
2020
</constant>
21-
<constant name="OP_TYPE_VECTOR" value="1" enum="OpType">
22-
A vector type.
21+
<constant name="OP_TYPE_VECTOR_2D" value="1" enum="OpType">
22+
A 2D vector type.
2323
</constant>
24-
<constant name="OP_TYPE_VECTOR_SCALAR" value="2" enum="OpType">
25-
A vector type. [code]edge[/code] port is using a scalar type.
24+
<constant name="OP_TYPE_VECTOR_2D_SCALAR" value="2" enum="OpType">
25+
The [code]x[/code] port uses a 2D vector type, while the [code]edge[/code] port uses a floating-point scalar type.
2626
</constant>
27-
<constant name="OP_TYPE_MAX" value="3" enum="OpType">
27+
<constant name="OP_TYPE_VECTOR_3D" value="3" enum="OpType">
28+
A 3D vector type.
29+
</constant>
30+
<constant name="OP_TYPE_VECTOR_3D_SCALAR" value="4" enum="OpType">
31+
The [code]x[/code] port uses a 3D vector type, while the [code]edge[/code] port uses a floating-point scalar type.
32+
</constant>
33+
<constant name="OP_TYPE_MAX" value="5" enum="OpType">
2834
Represents the size of the [enum OpType] enum.
2935
</constant>
3036
</constants>

‎doc/classes/VisualShaderNodeSwitch.xml

+8-5
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,19 @@
2020
<constant name="OP_TYPE_INT" value="1" enum="OpType">
2121
An integer scalar.
2222
</constant>
23-
<constant name="OP_TYPE_VECTOR" value="2" enum="OpType">
24-
A vector type.
23+
<constant name="OP_TYPE_VECTOR_2D" value="2" enum="OpType">
24+
A 2D vector type.
2525
</constant>
26-
<constant name="OP_TYPE_BOOLEAN" value="3" enum="OpType">
26+
<constant name="OP_TYPE_VECTOR_3D" value="3" enum="OpType">
27+
A 3D vector type.
28+
</constant>
29+
<constant name="OP_TYPE_BOOLEAN" value="4" enum="OpType">
2730
A boolean type.
2831
</constant>
29-
<constant name="OP_TYPE_TRANSFORM" value="4" enum="OpType">
32+
<constant name="OP_TYPE_TRANSFORM" value="5" enum="OpType">
3033
A transform type.
3134
</constant>
32-
<constant name="OP_TYPE_MAX" value="5" enum="OpType">
35+
<constant name="OP_TYPE_MAX" value="6" enum="OpType">
3336
Represents the size of the [enum OpType] enum.
3437
</constant>
3538
</constants>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<class name="VisualShaderNodeVec2Constant" inherits="VisualShaderNodeConstant" version="4.0">
3+
<brief_description>
4+
A [Vector2] constant to be used within the visual shader graph.
5+
</brief_description>
6+
<description>
7+
A constant [Vector2], which can be used as an input node.
8+
</description>
9+
<tutorials>
10+
</tutorials>
11+
<members>
12+
<member name="constant" type="Vector2" setter="set_constant" getter="get_constant" default="Vector2(0, 0)">
13+
A [Vector2] constant which represents the state of this node.
14+
</member>
15+
</members>
16+
</class>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<class name="VisualShaderNodeVec2Uniform" inherits="VisualShaderNodeUniform" version="4.0">
3+
<brief_description>
4+
A [Vector2] uniform to be used within the visual shader graph.
5+
</brief_description>
6+
<description>
7+
Translated to [code]uniform vec2[/code] in the shader language.
8+
</description>
9+
<tutorials>
10+
</tutorials>
11+
<members>
12+
<member name="default_value" type="Vector2" setter="set_default_value" getter="get_default_value" default="Vector2(0, 0)">
13+
A default value to be assigned within the shader.
14+
</member>
15+
<member name="default_value_enabled" type="bool" setter="set_default_value_enabled" getter="is_default_value_enabled" default="false">
16+
Enables usage of the [member default_value].
17+
</member>
18+
</members>
19+
</class>
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<class name="VisualShaderNodeVectorBase" inherits="VisualShaderNode" version="4.0">
3+
<brief_description>
4+
A base type for the nodes using different vector types within the visual shader graph.
5+
</brief_description>
6+
<description>
7+
</description>
8+
<tutorials>
9+
</tutorials>
10+
<members>
11+
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeVectorBase.OpType" default="1">
12+
A base type.
13+
</member>
14+
</members>
15+
<constants>
16+
<constant name="OP_TYPE_VECTOR_2D" value="0" enum="OpType">
17+
A 2D vector type.
18+
</constant>
19+
<constant name="OP_TYPE_VECTOR_3D" value="1" enum="OpType">
20+
A 3D vector type.
21+
</constant>
22+
<constant name="OP_TYPE_MAX" value="2" enum="OpType">
23+
Represents the size of the [enum OpType] enum.
24+
</constant>
25+
</constants>
26+
</class>

‎doc/classes/VisualShaderNodeVectorCompose.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="VisualShaderNodeVectorCompose" inherits="VisualShaderNode" version="4.0">
2+
<class name="VisualShaderNodeVectorCompose" inherits="VisualShaderNodeVectorBase" version="4.0">
33
<brief_description>
44
Composes a [Vector3] from three scalars within the visual shader graph.
55
</brief_description>

‎doc/classes/VisualShaderNodeVectorDecompose.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="VisualShaderNodeVectorDecompose" inherits="VisualShaderNode" version="4.0">
2+
<class name="VisualShaderNodeVectorDecompose" inherits="VisualShaderNodeVectorBase" version="4.0">
33
<brief_description>
44
Decomposes a [Vector3] into three scalars within the visual shader graph.
55
</brief_description>

‎doc/classes/VisualShaderNodeVectorDistance.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="VisualShaderNodeVectorDistance" inherits="VisualShaderNode" version="4.0">
2+
<class name="VisualShaderNodeVectorDistance" inherits="VisualShaderNodeVectorBase" version="4.0">
33
<brief_description>
44
Returns the distance between two points. To be used within the visual shader graph.
55
</brief_description>

‎doc/classes/VisualShaderNodeVectorFunc.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="VisualShaderNodeVectorFunc" inherits="VisualShaderNode" version="4.0">
2+
<class name="VisualShaderNodeVectorFunc" inherits="VisualShaderNodeVectorBase" version="4.0">
33
<brief_description>
44
A vector function to be used within the visual shader graph.
55
</brief_description>

‎doc/classes/VisualShaderNodeVectorLen.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="VisualShaderNodeVectorLen" inherits="VisualShaderNode" version="4.0">
2+
<class name="VisualShaderNodeVectorLen" inherits="VisualShaderNodeVectorBase" version="4.0">
33
<brief_description>
44
Returns the length of a [Vector3] within the visual shader graph.
55
</brief_description>

‎doc/classes/VisualShaderNodeVectorOp.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="VisualShaderNodeVectorOp" inherits="VisualShaderNode" version="4.0">
2+
<class name="VisualShaderNodeVectorOp" inherits="VisualShaderNodeVectorBase" version="4.0">
33
<brief_description>
44
A vector operator to be used within the visual shader graph.
55
</brief_description>

‎editor/plugins/visual_shader_editor_plugin.cpp

+349-128
Large diffs are not rendered by default.

‎scene/register_scene_types.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -555,11 +555,13 @@ void register_scene_types() {
555555
GDREGISTER_VIRTUAL_CLASS(VisualShaderNodeResizableBase);
556556
GDREGISTER_VIRTUAL_CLASS(VisualShaderNodeGroupBase);
557557
GDREGISTER_VIRTUAL_CLASS(VisualShaderNodeConstant);
558+
GDREGISTER_VIRTUAL_CLASS(VisualShaderNodeVectorBase);
558559
GDREGISTER_CLASS(VisualShaderNodeComment);
559560
GDREGISTER_CLASS(VisualShaderNodeFloatConstant);
560561
GDREGISTER_CLASS(VisualShaderNodeIntConstant);
561562
GDREGISTER_CLASS(VisualShaderNodeBooleanConstant);
562563
GDREGISTER_CLASS(VisualShaderNodeColorConstant);
564+
GDREGISTER_CLASS(VisualShaderNodeVec2Constant);
563565
GDREGISTER_CLASS(VisualShaderNodeVec3Constant);
564566
GDREGISTER_CLASS(VisualShaderNodeTransformConstant);
565567
GDREGISTER_CLASS(VisualShaderNodeFloatOp);
@@ -603,6 +605,7 @@ void register_scene_types() {
603605
GDREGISTER_CLASS(VisualShaderNodeIntUniform);
604606
GDREGISTER_CLASS(VisualShaderNodeBooleanUniform);
605607
GDREGISTER_CLASS(VisualShaderNodeColorUniform);
608+
GDREGISTER_CLASS(VisualShaderNodeVec2Uniform);
606609
GDREGISTER_CLASS(VisualShaderNodeVec3Uniform);
607610
GDREGISTER_CLASS(VisualShaderNodeTransformUniform);
608611
GDREGISTER_CLASS(VisualShaderNodeTextureUniform);

‎scene/resources/visual_shader.cpp

+417-146
Large diffs are not rendered by default.

‎scene/resources/visual_shader.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ class VisualShaderNode : public Resource {
214214
enum PortType {
215215
PORT_TYPE_SCALAR,
216216
PORT_TYPE_SCALAR_INT,
217+
PORT_TYPE_VECTOR_2D,
217218
PORT_TYPE_VECTOR,
218219
PORT_TYPE_BOOLEAN,
219220
PORT_TYPE_TRANSFORM,
@@ -229,7 +230,7 @@ class VisualShaderNode : public Resource {
229230
virtual PortType get_input_port_type(int p_port) const = 0;
230231
virtual String get_input_port_name(int p_port) const = 0;
231232

232-
virtual void set_input_port_default_value(int p_port, const Variant &p_value);
233+
virtual void set_input_port_default_value(int p_port, const Variant &p_value, const Variant &p_prev_value = Variant());
233234
Variant get_input_port_default_value(int p_port) const; // if NIL (default if node does not set anything) is returned, it means no default value is wanted if disconnected, thus no input var must be supplied (empty string will be supplied)
234235
Array get_default_input_values() const;
235236
virtual void set_default_input_values(const Array &p_values);
@@ -311,7 +312,7 @@ class VisualShaderNodeCustom : public VisualShaderNode {
311312
virtual PortType get_output_port_type(int p_port) const override;
312313
virtual String get_output_port_name(int p_port) const override;
313314

314-
virtual void set_input_port_default_value(int p_port, const Variant &p_value) override;
315+
virtual void set_input_port_default_value(int p_port, const Variant &p_value, const Variant &p_prev_value = Variant()) override;
315316
virtual void set_default_input_values(const Array &p_values) override;
316317
virtual void remove_input_port_default_value(int p_port) override;
317318
virtual void clear_default_input_values() override;
@@ -492,7 +493,8 @@ class VisualShaderNodeUniformRef : public VisualShaderNode {
492493
UNIFORM_TYPE_FLOAT,
493494
UNIFORM_TYPE_INT,
494495
UNIFORM_TYPE_BOOLEAN,
495-
UNIFORM_TYPE_VECTOR,
496+
UNIFORM_TYPE_VECTOR2,
497+
UNIFORM_TYPE_VECTOR3,
496498
UNIFORM_TYPE_TRANSFORM,
497499
UNIFORM_TYPE_COLOR,
498500
UNIFORM_TYPE_SAMPLER,

‎scene/resources/visual_shader_nodes.cpp

+889-304
Large diffs are not rendered by default.

‎scene/resources/visual_shader_nodes.h

+165-35
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.