Update graphics/blender to 2.92.0

This update broke the cycles renderer just for OpenBSD hence the
delay. Fix by @brecht - blender cycles developer.
Hopefully if blender makes a corrective release we can get
rid of these additional patches or just wait until 2.93.0.

The tests could be enabled now, 4 fail out of 61 but these failures are
harmless and caused by the absence of port embree which I'm working on.
Tests can only be carried out against the final installation and
additional 1.5GBs of files are required which are hosted in a svn repo
with no tarballs. :(
So I've refrained from enabling them.

Added py-requests dependency to enable blenderkit addon.

Build & Run tested on amd64.

regards,
  Dimitri

Index: Makefile
===================================================================
RCS file: /cvs/ports/graphics/blender/Makefile,v
retrieving revision 1.102
diff -u -p -r1.102 Makefile
--- Makefile    23 Feb 2021 19:39:24 -0000      1.102
+++ Makefile    18 Mar 2021 03:26:59 -0000
@@ -4,7 +4,7 @@ ONLY_FOR_ARCHS = amd64
 
 COMMENT =      3D creation software
 
-DISTNAME =     blender-2.91.2
+DISTNAME =     blender-2.92.0
 
 CATEGORIES =   graphics
 
@@ -23,8 +23,8 @@ WANTLIB += avformat avutil blosc boost_a
 WANTLIB += boost_date_time-mt boost_filesystem-mt boost_iostreams-mt
 WANTLIB += boost_regex-mt boost_system-mt boost_thread-mt c fftw3
 WANTLIB += freetype gmp gmpxx jpeg m openal openjp2 openvdb osdCPU
-WANTLIB += osdGPU png potrace sndfile swscale tbb tiff tinyxml
-WANTLIB += util yaml-cpp z
+WANTLIB += osdGPU png potrace pugixml sndfile swscale tbb tiff
+WANTLIB += tinyxml util yaml-cpp z
 
 MASTER_SITES = https://download.blender.org/source/ \
                http://mirror.cs.umn.edu/blender.org/source/
@@ -44,7 +44,8 @@ CONFIGURE_ARGS =      -DPYTHON_INCLUDE_DIR="$
                        -DWITH_CYCLES_EMBREE=OFF \
                        -DWITH_JACK=OFF
 
-BUILD_DEPENDS = math/py-numpy${MODPY_FLAVOR}
+BUILD_DEPENDS = math/py-numpy${MODPY_FLAVOR} \
+               www/py-requests${MODPY_FLAVOR}
 LIB_DEPENDS =  audio/libsndfile \
                audio/openal \
                devel/boost \
@@ -68,6 +69,7 @@ LIB_DEPENDS = audio/libsndfile \
                ${MODPY_LIB_DEPENDS}
 RUN_DEPENDS =  devel/desktop-file-utils \
                math/py-numpy${MODPY_FLAVOR} \
+               www/py-requests${MODPY_FLAVOR} \
                x11/gnome/librsvg
 
 NO_TEST =      Yes
Index: distinfo
===================================================================
RCS file: /cvs/ports/graphics/blender/distinfo,v
retrieving revision 1.30
diff -u -p -r1.30 distinfo
--- distinfo    27 Jan 2021 20:15:25 -0000      1.30
+++ distinfo    18 Mar 2021 03:26:59 -0000
@@ -1,2 +1,2 @@
-SHA256 (blender-2.91.2.tar.xz) = GFy8TNfy9hSnWUIh2CNxcK3n84nRaFjO4irXeMJvzHA=
-SIZE (blender-2.91.2.tar.xz) = 42057100
+SHA256 (blender-2.92.0.tar.xz) = 55HPxAMpI4NXfDyM4s005aos2NoKdIMEEEmhYJ3bRZU=
+SIZE (blender-2.92.0.tar.xz) = 42444576
Index: patches/patch-intern_cycles_graph_node_type_cpp
===================================================================
RCS file: patches/patch-intern_cycles_graph_node_type_cpp
diff -N patches/patch-intern_cycles_graph_node_type_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_graph_node_type_cpp     18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: intern/cycles/graph/node_type.cpp
+--- intern/cycles/graph/node_type.cpp.orig
++++ intern/cycles/graph/node_type.cpp
+@@ -154,7 +154,7 @@ void NodeType::register_input(ustring name,
+                               int struct_offset,
+                               const void *default_value,
+                               const NodeEnum *enum_values,
+-                              const NodeType **node_type,
++                              const NodeType *node_type,
+                               int flags,
+                               int extra_flags)
+ {
Index: patches/patch-intern_cycles_graph_node_type_h
===================================================================
RCS file: patches/patch-intern_cycles_graph_node_type_h
diff -N patches/patch-intern_cycles_graph_node_type_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_graph_node_type_h       18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,68 @@
+$OpenBSD$
+
+Index: intern/cycles/graph/node_type.h
+--- intern/cycles/graph/node_type.h.orig
++++ intern/cycles/graph/node_type.h
+@@ -87,7 +87,7 @@ struct SocketType {
+   int struct_offset;
+   const void *default_value;
+   const NodeEnum *enum_values;
+-  const NodeType **node_type;
++  const NodeType *node_type;
+   int flags;
+   ustring ui_name;
+   SocketModifiedFlags modified_flag_bit;
+@@ -115,7 +115,7 @@ struct NodeType {
+                       int struct_offset,
+                       const void *default_value,
+                       const NodeEnum *enum_values = NULL,
+-                      const NodeType **node_type = NULL,
++                      const NodeType *node_type = NULL,
+                       int flags = 0,
+                       int extra_flags = 0);
+   void register_output(ustring name, ustring ui_name, SocketType::Type type);
+@@ -140,27 +140,38 @@ struct NodeType {
+   static unordered_map<ustring, NodeType, ustringHash> &types();
+ };
+ 
+-/* Node Definition Macros */
++/* Node Definition Macros
++ *
++ * Node we use accessor to get node types to ensure correct static
++ * initialization order. */
+ 
+ #define NODE_DECLARE \
++  static const NodeType *get_node_type(); \
+   template<typename T> static const NodeType *register_type(); \
+-  static Node *create(const NodeType *type); \
+-  static const NodeType *node_type;
++  static Node *create(const NodeType *type);
+ 
+ #define NODE_DEFINE(structname) \
+-  const NodeType *structname::node_type = 
structname::register_type<structname>(); \
+   Node *structname::create(const NodeType *) \
+   { \
+     return new structname(); \
+   } \
++  const NodeType *structname::get_node_type() \
++  { \
++    static const NodeType *node_type = register_type<structname>(); \
++    return node_type; \
++  } \
+   template<typename T> const NodeType *structname::register_type()
+ 
+ #define NODE_ABSTRACT_DECLARE \
+   template<typename T> static const NodeType *register_base_type(); \
+-  static const NodeType *node_base_type;
++  static const NodeType *get_node_base_type();
+ 
+ #define NODE_ABSTRACT_DEFINE(structname) \
+-  const NodeType *structname::node_base_type = 
structname::register_base_type<structname>(); \
++  const NodeType *structname::get_node_base_type() \
++  { \
++    static const NodeType *node_base_type = register_base_type<structname>(); 
\
++    return node_base_type; \
++  } \
+   template<typename T> const NodeType *structname::register_base_type()
+ 
+ /* Sock Definition Macros */
Index: patches/patch-intern_cycles_graph_node_xml_cpp
===================================================================
RCS file: patches/patch-intern_cycles_graph_node_xml_cpp
diff -N patches/patch-intern_cycles_graph_node_xml_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_graph_node_xml_cpp      18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Index: intern/cycles/graph/node_xml.cpp
+--- intern/cycles/graph/node_xml.cpp.orig
++++ intern/cycles/graph/node_xml.cpp
+@@ -200,7 +200,7 @@ void xml_read_node(XMLReader &reader, Node *node, xml_
+         map<ustring, Node *>::iterator it = reader.node_map.find(value);
+         if (it != reader.node_map.end()) {
+           Node *value_node = it->second;
+-          if (value_node->is_a(*(socket.node_type)))
++          if (value_node->is_a(socket.node_type))
+             node->set(socket, it->second);
+         }
+         break;
+@@ -215,7 +215,7 @@ void xml_read_node(XMLReader &reader, Node *node, xml_
+           map<ustring, Node *>::iterator it = 
reader.node_map.find(ustring(tokens[i]));
+           if (it != reader.node_map.end()) {
+             Node *value_node = it->second;
+-            value[i] = (value_node->is_a(*(socket.node_type))) ? value_node : 
NULL;
++            value[i] = (value_node->is_a(socket.node_type)) ? value_node : 
NULL;
+           }
+           else {
+             value[i] = NULL;
Index: patches/patch-intern_cycles_render_background_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_background_cpp
diff -N patches/patch-intern_cycles_render_background_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_background_cpp   18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Index: intern/cycles/render/background.cpp
+--- intern/cycles/render/background.cpp.orig
++++ intern/cycles/render/background.cpp
+@@ -47,12 +47,12 @@ NODE_DEFINE(Background)
+ 
+   SOCKET_FLOAT(volume_step_size, "Volume Step Size", 0.1f);
+ 
+-  SOCKET_NODE(shader, "Shader", &Shader::node_type);
++  SOCKET_NODE(shader, "Shader", Shader::get_node_type());
+ 
+   return type;
+ }
+ 
+-Background::Background() : Node(node_type)
++Background::Background() : Node(get_node_type())
+ {
+   shader = NULL;
+ }
Index: patches/patch-intern_cycles_render_camera_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_camera_cpp
diff -N patches/patch-intern_cycles_render_camera_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_camera_cpp       18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: intern/cycles/render/camera.cpp
+--- intern/cycles/render/camera.cpp.orig
++++ intern/cycles/render/camera.cpp
+@@ -163,7 +163,7 @@ NODE_DEFINE(Camera)
+   return type;
+ }
+ 
+-Camera::Camera() : Node(node_type)
++Camera::Camera() : Node(get_node_type())
+ {
+   shutter_table_offset = TABLE_OFFSET_INVALID;
+ 
Index: patches/patch-intern_cycles_render_film_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_film_cpp
diff -N patches/patch-intern_cycles_render_film_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_film_cpp 18 Mar 2021 03:26:59 -0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Index: intern/cycles/render/film.cpp
+--- intern/cycles/render/film.cpp.orig
++++ intern/cycles/render/film.cpp
+@@ -96,7 +96,7 @@ NODE_DEFINE(Pass)
+   return type;
+ }
+ 
+-Pass::Pass() : Node(node_type)
++Pass::Pass() : Node(get_node_type())
+ {
+ }
+ 
+@@ -407,7 +407,7 @@ NODE_DEFINE(Film)
+   return type;
+ }
+ 
+-Film::Film() : Node(node_type)
++Film::Film() : Node(get_node_type())
+ {
+   use_light_visibility = false;
+   filter_table_offset = TABLE_OFFSET_INVALID;
Index: patches/patch-intern_cycles_render_geometry_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_geometry_cpp
diff -N patches/patch-intern_cycles_render_geometry_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_geometry_cpp     18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Index: intern/cycles/render/geometry.cpp
+--- intern/cycles/render/geometry.cpp.orig
++++ intern/cycles/render/geometry.cpp
+@@ -52,7 +52,7 @@ NODE_ABSTRACT_DEFINE(Geometry)
+ 
+   SOCKET_UINT(motion_steps, "Motion Steps", 3);
+   SOCKET_BOOLEAN(use_motion_blur, "Use Motion Blur", false);
+-  SOCKET_NODE_ARRAY(used_shaders, "Shaders", &Shader::node_type);
++  SOCKET_NODE_ARRAY(used_shaders, "Shaders", Shader::get_node_type());
+ 
+   return type;
+ }
+@@ -1289,7 +1289,7 @@ void GeometryManager::device_update_bvh(Device *device
+   dscene->data.bvh.use_bvh_steps = (scene->params.num_bvh_time_steps != 0);
+   dscene->data.bvh.curve_subdivisions = scene->params.curve_subdivisions();
+   /* The scene handle is set in 'CPUDevice::const_copy_to' and 
'OptiXDevice::const_copy_to' */
+-  dscene->data.bvh.scene = NULL;
++  dscene->data.bvh.scene = 0;
+ }
+ 
+ void GeometryManager::device_update_preprocess(Device *device, Scene *scene, 
Progress &progress)
Index: patches/patch-intern_cycles_render_hair_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_hair_cpp
diff -N patches/patch-intern_cycles_render_hair_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_hair_cpp 18 Mar 2021 03:26:59 -0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Index: intern/cycles/render/hair.cpp
+--- intern/cycles/render/hair.cpp.orig
++++ intern/cycles/render/hair.cpp
+@@ -283,7 +283,7 @@ void Hair::Curve::cardinal_keys_for_step(const float3 
+ 
+ NODE_DEFINE(Hair)
+ {
+-  NodeType *type = NodeType::add("hair", create, NodeType::NONE, 
Geometry::node_base_type);
++  NodeType *type = NodeType::add("hair", create, NodeType::NONE, 
Geometry::get_node_base_type());
+ 
+   SOCKET_POINT_ARRAY(curve_keys, "Curve Keys", array<float3>());
+   SOCKET_FLOAT_ARRAY(curve_radius, "Curve Radius", array<float>());
+@@ -293,7 +293,7 @@ NODE_DEFINE(Hair)
+   return type;
+ }
+ 
+-Hair::Hair() : Geometry(node_type, Geometry::HAIR)
++Hair::Hair() : Geometry(get_node_type(), Geometry::HAIR)
+ {
+   curvekey_offset = 0;
+   curve_shape = CURVE_RIBBON;
Index: patches/patch-intern_cycles_render_integrator_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_integrator_cpp
diff -N patches/patch-intern_cycles_render_integrator_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_integrator_cpp   18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: intern/cycles/render/integrator.cpp
+--- intern/cycles/render/integrator.cpp.orig
++++ intern/cycles/render/integrator.cpp
+@@ -94,7 +94,7 @@ NODE_DEFINE(Integrator)
+   return type;
+ }
+ 
+-Integrator::Integrator() : Node(node_type)
++Integrator::Integrator() : Node(get_node_type())
+ {
+ }
+ 
Index: patches/patch-intern_cycles_render_light_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_light_cpp
diff -N patches/patch-intern_cycles_render_light_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_light_cpp        18 Mar 2021 03:26:59 
-0000
@@ -0,0 +1,47 @@
+$OpenBSD$
+
+Index: intern/cycles/render/light.cpp
+--- intern/cycles/render/light.cpp.orig
++++ intern/cycles/render/light.cpp
+@@ -151,12 +151,12 @@ NODE_DEFINE(Light)
+   SOCKET_BOOLEAN(is_portal, "Is Portal", false);
+   SOCKET_BOOLEAN(is_enabled, "Is Enabled", true);
+ 
+-  SOCKET_NODE(shader, "Shader", &Shader::node_type);
++  SOCKET_NODE(shader, "Shader", Shader::get_node_type());
+ 
+   return type;
+ }
+ 
+-Light::Light() : Node(node_type)
++Light::Light() : Node(get_node_type())
+ {
+ }
+ 
+@@ -603,7 +603,7 @@ void LightManager::device_update_background(Device *de
+   Shader *shader = scene->background->get_shader(scene);
+   int num_suns = 0;
+   foreach (ShaderNode *node, shader->graph->nodes) {
+-    if (node->type == EnvironmentTextureNode::node_type) {
++    if (node->type == EnvironmentTextureNode::get_node_type()) {
+       EnvironmentTextureNode *env = (EnvironmentTextureNode *)node;
+       ImageMetaData metadata;
+       if (!env->handle.empty()) {
+@@ -612,7 +612,7 @@ void LightManager::device_update_background(Device *de
+         environment_res.y = max(environment_res.y, metadata.height);
+       }
+     }
+-    if (node->type == SkyTextureNode::node_type) {
++    if (node->type == SkyTextureNode::get_node_type()) {
+       SkyTextureNode *sky = (SkyTextureNode *)node;
+       if (sky->get_sky_type() == NODE_SKY_NISHITA && sky->get_sun_disc()) {
+         /* Ensure that the input coordinates aren't transformed before they 
reach the node.
+@@ -621,7 +621,7 @@ void LightManager::device_update_background(Device *de
+         const ShaderInput *vec_in = sky->input("Vector");
+         if (vec_in && vec_in->link && vec_in->link->parent) {
+           ShaderNode *vec_src = vec_in->link->parent;
+-          if ((vec_src->type != TextureCoordinateNode::node_type) ||
++          if ((vec_src->type != TextureCoordinateNode::get_node_type()) ||
+               (vec_in->link != vec_src->output("Generated"))) {
+             environment_res.x = max(environment_res.x, 4096);
+             environment_res.y = max(environment_res.y, 2048);
Index: patches/patch-intern_cycles_render_mesh_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_mesh_cpp
diff -N patches/patch-intern_cycles_render_mesh_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_mesh_cpp 18 Mar 2021 03:26:59 -0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Index: intern/cycles/render/mesh.cpp
+--- intern/cycles/render/mesh.cpp.orig
++++ intern/cycles/render/mesh.cpp
+@@ -125,7 +125,7 @@ float3 Mesh::SubdFace::normal(const Mesh *mesh) const
+ 
+ NODE_DEFINE(Mesh)
+ {
+-  NodeType *type = NodeType::add("mesh", create, NodeType::NONE, 
Geometry::node_base_type);
++  NodeType *type = NodeType::add("mesh", create, NodeType::NONE, 
Geometry::get_node_base_type());
+ 
+   SOCKET_INT_ARRAY(triangles, "Triangles", array<int>());
+   SOCKET_POINT_ARRAY(verts, "Vertices", array<float3>());
+@@ -202,7 +202,7 @@ Mesh::Mesh(const NodeType *node_type, Type geom_type_)
+   patch_table = NULL;
+ }
+ 
+-Mesh::Mesh() : Mesh(node_type, Geometry::MESH)
++Mesh::Mesh() : Mesh(get_node_type(), Geometry::MESH)
+ {
+ }
+ 
Index: patches/patch-intern_cycles_render_nodes_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_nodes_cpp
diff -N patches/patch-intern_cycles_render_nodes_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_nodes_cpp        18 Mar 2021 03:27:00 
-0000
@@ -0,0 +1,811 @@
+$OpenBSD$
+
+Index: intern/cycles/render/nodes.cpp
+--- intern/cycles/render/nodes.cpp.orig
++++ intern/cycles/render/nodes.cpp
+@@ -258,7 +258,7 @@ NODE_DEFINE(ImageTextureNode)
+   return type;
+ }
+ 
+-ImageTextureNode::ImageTextureNode() : ImageSlotTextureNode(node_type)
++ImageTextureNode::ImageTextureNode() : ImageSlotTextureNode(get_node_type())
+ {
+   colorspace = u_colorspace_raw;
+   animated = false;
+@@ -309,11 +309,11 @@ void ImageTextureNode::cull_tiles(Scene *scene, Shader
+   ustring attribute;
+   if (vector_in->link) {
+     ShaderNode *node = vector_in->link->parent;
+-    if (node->type == UVMapNode::node_type) {
++    if (node->type == UVMapNode::get_node_type()) {
+       UVMapNode *uvmap = (UVMapNode *)node;
+       attribute = uvmap->get_attribute();
+     }
+-    else if (node->type == TextureCoordinateNode::node_type) {
++    else if (node->type == TextureCoordinateNode::get_node_type()) {
+       if (vector_in->link != node->output("UV")) {
+         return;
+       }
+@@ -525,7 +525,7 @@ NODE_DEFINE(EnvironmentTextureNode)
+   return type;
+ }
+ 
+-EnvironmentTextureNode::EnvironmentTextureNode() : 
ImageSlotTextureNode(node_type)
++EnvironmentTextureNode::EnvironmentTextureNode() : 
ImageSlotTextureNode(get_node_type())
+ {
+   colorspace = u_colorspace_raw;
+   animated = false;
+@@ -819,7 +819,7 @@ NODE_DEFINE(SkyTextureNode)
+   return type;
+ }
+ 
+-SkyTextureNode::SkyTextureNode() : TextureNode(node_type)
++SkyTextureNode::SkyTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1002,7 +1002,7 @@ NODE_DEFINE(GradientTextureNode)
+   return type;
+ }
+ 
+-GradientTextureNode::GradientTextureNode() : TextureNode(node_type)
++GradientTextureNode::GradientTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1060,7 +1060,7 @@ NODE_DEFINE(NoiseTextureNode)
+   return type;
+ }
+ 
+-NoiseTextureNode::NoiseTextureNode() : TextureNode(node_type)
++NoiseTextureNode::NoiseTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1154,7 +1154,7 @@ NODE_DEFINE(VoronoiTextureNode)
+   return type;
+ }
+ 
+-VoronoiTextureNode::VoronoiTextureNode() : TextureNode(node_type)
++VoronoiTextureNode::VoronoiTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1234,7 +1234,7 @@ NODE_DEFINE(IESLightNode)
+   return type;
+ }
+ 
+-IESLightNode::IESLightNode() : TextureNode(node_type)
++IESLightNode::IESLightNode() : TextureNode(get_node_type())
+ {
+   light_manager = NULL;
+   slot = -1;
+@@ -1326,7 +1326,7 @@ NODE_DEFINE(WhiteNoiseTextureNode)
+   return type;
+ }
+ 
+-WhiteNoiseTextureNode::WhiteNoiseTextureNode() : ShaderNode(node_type)
++WhiteNoiseTextureNode::WhiteNoiseTextureNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -1392,7 +1392,7 @@ NODE_DEFINE(MusgraveTextureNode)
+   return type;
+ }
+ 
+-MusgraveTextureNode::MusgraveTextureNode() : TextureNode(node_type)
++MusgraveTextureNode::MusgraveTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1491,7 +1491,7 @@ NODE_DEFINE(WaveTextureNode)
+   return type;
+ }
+ 
+-WaveTextureNode::WaveTextureNode() : TextureNode(node_type)
++WaveTextureNode::WaveTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1566,7 +1566,7 @@ NODE_DEFINE(MagicTextureNode)
+   return type;
+ }
+ 
+-MagicTextureNode::MagicTextureNode() : TextureNode(node_type)
++MagicTextureNode::MagicTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1620,7 +1620,7 @@ NODE_DEFINE(CheckerTextureNode)
+   return type;
+ }
+ 
+-CheckerTextureNode::CheckerTextureNode() : TextureNode(node_type)
++CheckerTextureNode::CheckerTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1687,7 +1687,7 @@ NODE_DEFINE(BrickTextureNode)
+   return type;
+ }
+ 
+-BrickTextureNode::BrickTextureNode() : TextureNode(node_type)
++BrickTextureNode::BrickTextureNode() : TextureNode(get_node_type())
+ {
+ }
+ 
+@@ -1780,7 +1780,7 @@ NODE_DEFINE(PointDensityTextureNode)
+   return type;
+ }
+ 
+-PointDensityTextureNode::PointDensityTextureNode() : ShaderNode(node_type)
++PointDensityTextureNode::PointDensityTextureNode() : 
ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -1897,7 +1897,7 @@ NODE_DEFINE(NormalNode)
+   return type;
+ }
+ 
+-NormalNode::NormalNode() : ShaderNode(node_type)
++NormalNode::NormalNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -1944,7 +1944,7 @@ NODE_DEFINE(MappingNode)
+   return type;
+ }
+ 
+-MappingNode::MappingNode() : ShaderNode(node_type)
++MappingNode::MappingNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -1999,7 +1999,7 @@ NODE_DEFINE(RGBToBWNode)
+   return type;
+ }
+ 
+-RGBToBWNode::RGBToBWNode() : ShaderNode(node_type)
++RGBToBWNode::RGBToBWNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -2312,7 +2312,7 @@ NODE_DEFINE(AnisotropicBsdfNode)
+   return type;
+ }
+ 
+-AnisotropicBsdfNode::AnisotropicBsdfNode() : BsdfNode(node_type)
++AnisotropicBsdfNode::AnisotropicBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_MICROFACET_GGX_ID;
+ }
+@@ -2370,7 +2370,7 @@ NODE_DEFINE(GlossyBsdfNode)
+   return type;
+ }
+ 
+-GlossyBsdfNode::GlossyBsdfNode() : BsdfNode(node_type)
++GlossyBsdfNode::GlossyBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_MICROFACET_GGX_ID;
+   distribution_orig = NBUILTIN_CLOSURES;
+@@ -2463,7 +2463,7 @@ NODE_DEFINE(GlassBsdfNode)
+   return type;
+ }
+ 
+-GlassBsdfNode::GlassBsdfNode() : BsdfNode(node_type)
++GlassBsdfNode::GlassBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_SHARP_GLASS_ID;
+   distribution_orig = NBUILTIN_CLOSURES;
+@@ -2556,7 +2556,7 @@ NODE_DEFINE(RefractionBsdfNode)
+   return type;
+ }
+ 
+-RefractionBsdfNode::RefractionBsdfNode() : BsdfNode(node_type)
++RefractionBsdfNode::RefractionBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_REFRACTION_ID;
+   distribution_orig = NBUILTIN_CLOSURES;
+@@ -2644,7 +2644,7 @@ NODE_DEFINE(ToonBsdfNode)
+   return type;
+ }
+ 
+-ToonBsdfNode::ToonBsdfNode() : BsdfNode(node_type)
++ToonBsdfNode::ToonBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_DIFFUSE_TOON_ID;
+ }
+@@ -2678,7 +2678,7 @@ NODE_DEFINE(VelvetBsdfNode)
+   return type;
+ }
+ 
+-VelvetBsdfNode::VelvetBsdfNode() : BsdfNode(node_type)
++VelvetBsdfNode::VelvetBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID;
+ }
+@@ -2709,7 +2709,7 @@ NODE_DEFINE(DiffuseBsdfNode)
+   return type;
+ }
+ 
+-DiffuseBsdfNode::DiffuseBsdfNode() : BsdfNode(node_type)
++DiffuseBsdfNode::DiffuseBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_DIFFUSE_ID;
+ }
+@@ -2776,7 +2776,7 @@ NODE_DEFINE(PrincipledBsdfNode)
+   return type;
+ }
+ 
+-PrincipledBsdfNode::PrincipledBsdfNode() : BsdfBaseNode(node_type)
++PrincipledBsdfNode::PrincipledBsdfNode() : BsdfBaseNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_PRINCIPLED_ID;
+   distribution = CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID;
+@@ -2997,7 +2997,7 @@ NODE_DEFINE(TranslucentBsdfNode)
+   return type;
+ }
+ 
+-TranslucentBsdfNode::TranslucentBsdfNode() : BsdfNode(node_type)
++TranslucentBsdfNode::TranslucentBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_TRANSLUCENT_ID;
+ }
+@@ -3026,7 +3026,7 @@ NODE_DEFINE(TransparentBsdfNode)
+   return type;
+ }
+ 
+-TransparentBsdfNode::TransparentBsdfNode() : BsdfNode(node_type)
++TransparentBsdfNode::TransparentBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_TRANSPARENT_ID;
+ }
+@@ -3067,7 +3067,7 @@ NODE_DEFINE(SubsurfaceScatteringNode)
+   return type;
+ }
+ 
+-SubsurfaceScatteringNode::SubsurfaceScatteringNode() : BsdfNode(node_type)
++SubsurfaceScatteringNode::SubsurfaceScatteringNode() : 
BsdfNode(get_node_type())
+ {
+   closure = falloff;
+ }
+@@ -3109,7 +3109,7 @@ NODE_DEFINE(EmissionNode)
+   return type;
+ }
+ 
+-EmissionNode::EmissionNode() : ShaderNode(node_type)
++EmissionNode::EmissionNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -3159,7 +3159,7 @@ NODE_DEFINE(BackgroundNode)
+   return type;
+ }
+ 
+-BackgroundNode::BackgroundNode() : ShaderNode(node_type)
++BackgroundNode::BackgroundNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -3208,7 +3208,7 @@ NODE_DEFINE(HoldoutNode)
+   return type;
+ }
+ 
+-HoldoutNode::HoldoutNode() : ShaderNode(node_type)
++HoldoutNode::HoldoutNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -3246,7 +3246,7 @@ NODE_DEFINE(AmbientOcclusionNode)
+   return type;
+ }
+ 
+-AmbientOcclusionNode::AmbientOcclusionNode() : ShaderNode(node_type)
++AmbientOcclusionNode::AmbientOcclusionNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -3334,7 +3334,7 @@ NODE_DEFINE(AbsorptionVolumeNode)
+   return type;
+ }
+ 
+-AbsorptionVolumeNode::AbsorptionVolumeNode() : VolumeNode(node_type)
++AbsorptionVolumeNode::AbsorptionVolumeNode() : VolumeNode(get_node_type())
+ {
+   closure = CLOSURE_VOLUME_ABSORPTION_ID;
+ }
+@@ -3365,7 +3365,7 @@ NODE_DEFINE(ScatterVolumeNode)
+   return type;
+ }
+ 
+-ScatterVolumeNode::ScatterVolumeNode() : VolumeNode(node_type)
++ScatterVolumeNode::ScatterVolumeNode() : VolumeNode(get_node_type())
+ {
+   closure = CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID;
+ }
+@@ -3406,7 +3406,7 @@ NODE_DEFINE(PrincipledVolumeNode)
+   return type;
+ }
+ 
+-PrincipledVolumeNode::PrincipledVolumeNode() : VolumeNode(node_type)
++PrincipledVolumeNode::PrincipledVolumeNode() : VolumeNode(get_node_type())
+ {
+   closure = CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID;
+   density_attribute = ustring("density");
+@@ -3531,7 +3531,7 @@ NODE_DEFINE(PrincipledHairBsdfNode)
+   return type;
+ }
+ 
+-PrincipledHairBsdfNode::PrincipledHairBsdfNode() : BsdfBaseNode(node_type)
++PrincipledHairBsdfNode::PrincipledHairBsdfNode() : 
BsdfBaseNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_HAIR_PRINCIPLED_ID;
+ }
+@@ -3642,7 +3642,7 @@ NODE_DEFINE(HairBsdfNode)
+   return type;
+ }
+ 
+-HairBsdfNode::HairBsdfNode() : BsdfNode(node_type)
++HairBsdfNode::HairBsdfNode() : BsdfNode(get_node_type())
+ {
+   closure = CLOSURE_BSDF_HAIR_REFLECTION_ID;
+ }
+@@ -3684,7 +3684,7 @@ NODE_DEFINE(GeometryNode)
+   return type;
+ }
+ 
+-GeometryNode::GeometryNode() : ShaderNode(node_type)
++GeometryNode::GeometryNode() : ShaderNode(get_node_type())
+ {
+   special_type = SHADER_SPECIAL_TYPE_GEOMETRY;
+ }
+@@ -3833,7 +3833,7 @@ NODE_DEFINE(TextureCoordinateNode)
+   return type;
+ }
+ 
+-TextureCoordinateNode::TextureCoordinateNode() : ShaderNode(node_type)
++TextureCoordinateNode::TextureCoordinateNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -3980,7 +3980,7 @@ NODE_DEFINE(UVMapNode)
+   return type;
+ }
+ 
+-UVMapNode::UVMapNode() : ShaderNode(node_type)
++UVMapNode::UVMapNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4069,7 +4069,7 @@ NODE_DEFINE(LightPathNode)
+   return type;
+ }
+ 
+-LightPathNode::LightPathNode() : ShaderNode(node_type)
++LightPathNode::LightPathNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4169,7 +4169,7 @@ NODE_DEFINE(LightFalloffNode)
+   return type;
+ }
+ 
+-LightFalloffNode::LightFalloffNode() : ShaderNode(node_type)
++LightFalloffNode::LightFalloffNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4226,7 +4226,7 @@ NODE_DEFINE(ObjectInfoNode)
+   return type;
+ }
+ 
+-ObjectInfoNode::ObjectInfoNode() : ShaderNode(node_type)
++ObjectInfoNode::ObjectInfoNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4284,7 +4284,7 @@ NODE_DEFINE(ParticleInfoNode)
+   return type;
+ }
+ 
+-ParticleInfoNode::ParticleInfoNode() : ShaderNode(node_type)
++ParticleInfoNode::ParticleInfoNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4391,7 +4391,7 @@ NODE_DEFINE(HairInfoNode)
+   return type;
+ }
+ 
+-HairInfoNode::HairInfoNode() : ShaderNode(node_type)
++HairInfoNode::HairInfoNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4466,7 +4466,7 @@ NODE_DEFINE(VolumeInfoNode)
+   return type;
+ }
+ 
+-VolumeInfoNode::VolumeInfoNode() : ShaderNode(node_type)
++VolumeInfoNode::VolumeInfoNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4547,7 +4547,7 @@ NODE_DEFINE(VertexColorNode)
+   return type;
+ }
+ 
+-VertexColorNode::VertexColorNode() : ShaderNode(node_type)
++VertexColorNode::VertexColorNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4628,7 +4628,7 @@ NODE_DEFINE(ValueNode)
+   return type;
+ }
+ 
+-ValueNode::ValueNode() : ShaderNode(node_type)
++ValueNode::ValueNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4662,7 +4662,7 @@ NODE_DEFINE(ColorNode)
+   return type;
+ }
+ 
+-ColorNode::ColorNode() : ShaderNode(node_type)
++ColorNode::ColorNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4701,7 +4701,7 @@ NODE_DEFINE(AddClosureNode)
+   return type;
+ }
+ 
+-AddClosureNode::AddClosureNode() : ShaderNode(node_type)
++AddClosureNode::AddClosureNode() : ShaderNode(get_node_type())
+ {
+   special_type = SHADER_SPECIAL_TYPE_COMBINE_CLOSURE;
+ }
+@@ -4745,7 +4745,7 @@ NODE_DEFINE(MixClosureNode)
+   return type;
+ }
+ 
+-MixClosureNode::MixClosureNode() : ShaderNode(node_type)
++MixClosureNode::MixClosureNode() : ShaderNode(get_node_type())
+ {
+   special_type = SHADER_SPECIAL_TYPE_COMBINE_CLOSURE;
+ }
+@@ -4799,7 +4799,7 @@ NODE_DEFINE(MixClosureWeightNode)
+   return type;
+ }
+ 
+-MixClosureWeightNode::MixClosureWeightNode() : ShaderNode(node_type)
++MixClosureWeightNode::MixClosureWeightNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4836,7 +4836,7 @@ NODE_DEFINE(InvertNode)
+   return type;
+ }
+ 
+-InvertNode::InvertNode() : ShaderNode(node_type)
++InvertNode::InvertNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4912,7 +4912,7 @@ NODE_DEFINE(MixNode)
+   return type;
+ }
+ 
+-MixNode::MixNode() : ShaderNode(node_type)
++MixNode::MixNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -4967,7 +4967,7 @@ NODE_DEFINE(CombineRGBNode)
+   return type;
+ }
+ 
+-CombineRGBNode::CombineRGBNode() : ShaderNode(node_type)
++CombineRGBNode::CombineRGBNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5015,7 +5015,7 @@ NODE_DEFINE(CombineXYZNode)
+   return type;
+ }
+ 
+-CombineXYZNode::CombineXYZNode() : ShaderNode(node_type)
++CombineXYZNode::CombineXYZNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5063,7 +5063,7 @@ NODE_DEFINE(CombineHSVNode)
+   return type;
+ }
+ 
+-CombineHSVNode::CombineHSVNode() : ShaderNode(node_type)
++CombineHSVNode::CombineHSVNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5106,7 +5106,7 @@ NODE_DEFINE(GammaNode)
+   return type;
+ }
+ 
+-GammaNode::GammaNode() : ShaderNode(node_type)
++GammaNode::GammaNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5162,7 +5162,7 @@ NODE_DEFINE(BrightContrastNode)
+   return type;
+ }
+ 
+-BrightContrastNode::BrightContrastNode() : ShaderNode(node_type)
++BrightContrastNode::BrightContrastNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5207,7 +5207,7 @@ NODE_DEFINE(SeparateRGBNode)
+   return type;
+ }
+ 
+-SeparateRGBNode::SeparateRGBNode() : ShaderNode(node_type)
++SeparateRGBNode::SeparateRGBNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5260,7 +5260,7 @@ NODE_DEFINE(SeparateXYZNode)
+   return type;
+ }
+ 
+-SeparateXYZNode::SeparateXYZNode() : ShaderNode(node_type)
++SeparateXYZNode::SeparateXYZNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5313,7 +5313,7 @@ NODE_DEFINE(SeparateHSVNode)
+   return type;
+ }
+ 
+-SeparateHSVNode::SeparateHSVNode() : ShaderNode(node_type)
++SeparateHSVNode::SeparateHSVNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5367,7 +5367,7 @@ NODE_DEFINE(HSVNode)
+   return type;
+ }
+ 
+-HSVNode::HSVNode() : ShaderNode(node_type)
++HSVNode::HSVNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5410,7 +5410,7 @@ NODE_DEFINE(AttributeNode)
+   return type;
+ }
+ 
+-AttributeNode::AttributeNode() : ShaderNode(node_type)
++AttributeNode::AttributeNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5498,7 +5498,7 @@ NODE_DEFINE(CameraNode)
+   return type;
+ }
+ 
+-CameraNode::CameraNode() : ShaderNode(node_type)
++CameraNode::CameraNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5536,7 +5536,7 @@ NODE_DEFINE(FresnelNode)
+   return type;
+ }
+ 
+-FresnelNode::FresnelNode() : ShaderNode(node_type)
++FresnelNode::FresnelNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5576,7 +5576,7 @@ NODE_DEFINE(LayerWeightNode)
+   return type;
+ }
+ 
+-LayerWeightNode::LayerWeightNode() : ShaderNode(node_type)
++LayerWeightNode::LayerWeightNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5624,7 +5624,7 @@ NODE_DEFINE(WireframeNode)
+   return type;
+ }
+ 
+-WireframeNode::WireframeNode() : ShaderNode(node_type)
++WireframeNode::WireframeNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5672,7 +5672,7 @@ NODE_DEFINE(WavelengthNode)
+   return type;
+ }
+ 
+-WavelengthNode::WavelengthNode() : ShaderNode(node_type)
++WavelengthNode::WavelengthNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5702,7 +5702,7 @@ NODE_DEFINE(BlackbodyNode)
+   return type;
+ }
+ 
+-BlackbodyNode::BlackbodyNode() : ShaderNode(node_type)
++BlackbodyNode::BlackbodyNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5741,7 +5741,7 @@ NODE_DEFINE(OutputNode)
+   return type;
+ }
+ 
+-OutputNode::OutputNode() : ShaderNode(node_type)
++OutputNode::OutputNode() : ShaderNode(get_node_type())
+ {
+   special_type = SHADER_SPECIAL_TYPE_OUTPUT;
+ }
+@@ -5793,7 +5793,7 @@ NODE_DEFINE(MapRangeNode)
+   return type;
+ }
+ 
+-MapRangeNode::MapRangeNode() : ShaderNode(node_type)
++MapRangeNode::MapRangeNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5881,7 +5881,7 @@ NODE_DEFINE(ClampNode)
+   return type;
+ }
+ 
+-ClampNode::ClampNode() : ShaderNode(node_type)
++ClampNode::ClampNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -5936,7 +5936,7 @@ NODE_DEFINE(OutputAOVNode)
+   return type;
+ }
+ 
+-OutputAOVNode::OutputAOVNode() : ShaderNode(node_type)
++OutputAOVNode::OutputAOVNode() : ShaderNode(get_node_type())
+ {
+   special_type = SHADER_SPECIAL_TYPE_OUTPUT_AOV;
+   slot = -1;
+@@ -6034,7 +6034,7 @@ NODE_DEFINE(MathNode)
+   return type;
+ }
+ 
+-MathNode::MathNode() : ShaderNode(node_type)
++MathNode::MathNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6137,7 +6137,7 @@ NODE_DEFINE(VectorMathNode)
+   return type;
+ }
+ 
+-VectorMathNode::VectorMathNode() : ShaderNode(node_type)
++VectorMathNode::VectorMathNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6226,7 +6226,7 @@ NODE_DEFINE(VectorRotateNode)
+   return type;
+ }
+ 
+-VectorRotateNode::VectorRotateNode() : ShaderNode(node_type)
++VectorRotateNode::VectorRotateNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6282,7 +6282,7 @@ NODE_DEFINE(VectorTransformNode)
+   return type;
+ }
+ 
+-VectorTransformNode::VectorTransformNode() : ShaderNode(node_type)
++VectorTransformNode::VectorTransformNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6330,7 +6330,7 @@ NODE_DEFINE(BumpNode)
+   return type;
+ }
+ 
+-BumpNode::BumpNode() : ShaderNode(node_type)
++BumpNode::BumpNode() : ShaderNode(get_node_type())
+ {
+   special_type = SHADER_SPECIAL_TYPE_BUMP;
+ }
+@@ -6477,7 +6477,7 @@ NODE_DEFINE(RGBCurvesNode)
+   return type;
+ }
+ 
+-RGBCurvesNode::RGBCurvesNode() : CurvesNode(node_type)
++RGBCurvesNode::RGBCurvesNode() : CurvesNode(get_node_type())
+ {
+ }
+ 
+@@ -6514,7 +6514,7 @@ NODE_DEFINE(VectorCurvesNode)
+   return type;
+ }
+ 
+-VectorCurvesNode::VectorCurvesNode() : CurvesNode(node_type)
++VectorCurvesNode::VectorCurvesNode() : CurvesNode(get_node_type())
+ {
+ }
+ 
+@@ -6551,7 +6551,7 @@ NODE_DEFINE(RGBRampNode)
+   return type;
+ }
+ 
+-RGBRampNode::RGBRampNode() : ShaderNode(node_type)
++RGBRampNode::RGBRampNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6624,7 +6624,7 @@ NODE_DEFINE(SetNormalNode)
+   return type;
+ }
+ 
+-SetNormalNode::SetNormalNode() : ShaderNode(node_type)
++SetNormalNode::SetNormalNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6748,7 +6748,7 @@ NODE_DEFINE(NormalMapNode)
+   return type;
+ }
+ 
+-NormalMapNode::NormalMapNode() : ShaderNode(node_type)
++NormalMapNode::NormalMapNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6844,7 +6844,7 @@ NODE_DEFINE(TangentNode)
+   return type;
+ }
+ 
+-TangentNode::TangentNode() : ShaderNode(node_type)
++TangentNode::TangentNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6914,7 +6914,7 @@ NODE_DEFINE(BevelNode)
+   return type;
+ }
+ 
+-BevelNode::BevelNode() : ShaderNode(node_type)
++BevelNode::BevelNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -6959,7 +6959,7 @@ NODE_DEFINE(DisplacementNode)
+   return type;
+ }
+ 
+-DisplacementNode::DisplacementNode() : ShaderNode(node_type)
++DisplacementNode::DisplacementNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
+@@ -7018,7 +7018,7 @@ NODE_DEFINE(VectorDisplacementNode)
+   return type;
+ }
+ 
+-VectorDisplacementNode::VectorDisplacementNode() : ShaderNode(node_type)
++VectorDisplacementNode::VectorDisplacementNode() : ShaderNode(get_node_type())
+ {
+ }
+ 
Index: patches/patch-intern_cycles_render_object_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_object_cpp
diff -N patches/patch-intern_cycles_render_object_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_object_cpp       18 Mar 2021 03:27:00 
-0000
@@ -0,0 +1,30 @@
+$OpenBSD$
+
+Index: intern/cycles/render/object.cpp
+--- intern/cycles/render/object.cpp.orig
++++ intern/cycles/render/object.cpp
+@@ -82,7 +82,7 @@ NODE_DEFINE(Object)
+ {
+   NodeType *type = NodeType::add("object", create);
+ 
+-  SOCKET_NODE(geometry, "Geometry", &Geometry::node_base_type);
++  SOCKET_NODE(geometry, "Geometry", Geometry::get_node_base_type());
+   SOCKET_TRANSFORM(tfm, "Transform", transform_identity());
+   SOCKET_UINT(visibility, "Visibility", ~0);
+   SOCKET_COLOR(color, "Color", make_float3(0.0f, 0.0f, 0.0f));
+@@ -98,13 +98,13 @@ NODE_DEFINE(Object)
+ 
+   SOCKET_BOOLEAN(is_shadow_catcher, "Shadow Catcher", false);
+ 
+-  SOCKET_NODE(particle_system, "Particle System", &ParticleSystem::node_type);
++  SOCKET_NODE(particle_system, "Particle System", 
ParticleSystem::get_node_type());
+   SOCKET_INT(particle_index, "Particle Index", 0);
+ 
+   return type;
+ }
+ 
+-Object::Object() : Node(node_type)
++Object::Object() : Node(get_node_type())
+ {
+   particle_system = NULL;
+   particle_index = 0;
Index: patches/patch-intern_cycles_render_particles_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_particles_cpp
diff -N patches/patch-intern_cycles_render_particles_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_particles_cpp    18 Mar 2021 03:27:00 
-0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: intern/cycles/render/particles.cpp
+--- intern/cycles/render/particles.cpp.orig
++++ intern/cycles/render/particles.cpp
+@@ -36,7 +36,7 @@ NODE_DEFINE(ParticleSystem)
+   return type;
+ }
+ 
+-ParticleSystem::ParticleSystem() : Node(node_type)
++ParticleSystem::ParticleSystem() : Node(get_node_type())
+ {
+ }
+ 
Index: patches/patch-intern_cycles_render_shader_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_shader_cpp
diff -N patches/patch-intern_cycles_render_shader_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_shader_cpp       18 Mar 2021 03:27:00 
-0000
@@ -0,0 +1,32 @@
+$OpenBSD$
+
+Index: intern/cycles/render/shader.cpp
+--- intern/cycles/render/shader.cpp.orig
++++ intern/cycles/render/shader.cpp
+@@ -192,7 +192,7 @@ NODE_DEFINE(Shader)
+   return type;
+ }
+ 
+-Shader::Shader() : Node(node_type)
++Shader::Shader() : Node(get_node_type())
+ {
+   pass_id = 0;
+ 
+@@ -241,7 +241,7 @@ bool Shader::is_constant_emission(float3 *emission)
+     return false;
+   }
+ 
+-  if (surf->link->parent->type == EmissionNode::node_type) {
++  if (surf->link->parent->type == EmissionNode::get_node_type()) {
+     EmissionNode *node = (EmissionNode *)surf->link->parent;
+ 
+     assert(node->input("Color"));
+@@ -253,7 +253,7 @@ bool Shader::is_constant_emission(float3 *emission)
+ 
+     *emission = node->get_color() * node->get_strength();
+   }
+-  else if (surf->link->parent->type == BackgroundNode::node_type) {
++  else if (surf->link->parent->type == BackgroundNode::get_node_type()) {
+     BackgroundNode *node = (BackgroundNode *)surf->link->parent;
+ 
+     assert(node->input("Color"));
Index: patches/patch-intern_cycles_render_volume_cpp
===================================================================
RCS file: patches/patch-intern_cycles_render_volume_cpp
diff -N patches/patch-intern_cycles_render_volume_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-intern_cycles_render_volume_cpp       18 Mar 2021 03:27:00 
-0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Index: intern/cycles/render/volume.cpp
+--- intern/cycles/render/volume.cpp.orig
++++ intern/cycles/render/volume.cpp
+@@ -36,7 +36,7 @@ CCL_NAMESPACE_BEGIN
+ 
+ NODE_DEFINE(Volume)
+ {
+-  NodeType *type = NodeType::add("volume", create, NodeType::NONE, 
Mesh::node_type);
++  NodeType *type = NodeType::add("volume", create, NodeType::NONE, 
Mesh::get_node_type());
+ 
+   SOCKET_FLOAT(clipping, "Clipping", 0.001f);
+   SOCKET_FLOAT(step_size, "Step Size", 0.0f);
+@@ -45,7 +45,7 @@ NODE_DEFINE(Volume)
+   return type;
+ }
+ 
+-Volume::Volume() : Mesh(node_type, Geometry::VOLUME)
++Volume::Volume() : Mesh(get_node_type(), Geometry::VOLUME)
+ {
+   clipping = 0.001f;
+   step_size = 0.0f;
Index: patches/patch-intern_guardedalloc_intern_mallocn_c
===================================================================
RCS file: 
/cvs/ports/graphics/blender/patches/patch-intern_guardedalloc_intern_mallocn_c,v
retrieving revision 1.5
diff -u -p -r1.5 patch-intern_guardedalloc_intern_mallocn_c
--- patches/patch-intern_guardedalloc_intern_mallocn_c  29 Nov 2020 19:57:01 
-0000      1.5
+++ patches/patch-intern_guardedalloc_intern_mallocn_c  18 Mar 2021 03:27:00 
-0000
@@ -3,9 +3,9 @@ $OpenBSD: patch-intern_guardedalloc_inte
 Use posix_memalign() on OpenBSD.
 
 Index: intern/guardedalloc/intern/mallocn.c
---- intern/guardedalloc/intern/mallocn.c.orig  Tue Sep 22 19:36:29 2020
-+++ intern/guardedalloc/intern/mallocn.c       Sun Nov 22 13:12:51 2020
-@@ -71,7 +71,8 @@ void *aligned_malloc(size_t size, size_t alignment)
+--- intern/guardedalloc/intern/mallocn.c.orig
++++ intern/guardedalloc/intern/mallocn.c
+@@ -72,7 +72,8 @@ void *aligned_malloc(size_t size, size_t alignment)
  
  #ifdef _WIN32
    return _aligned_malloc(size, alignment);
Index: patches/patch-source_blender_blenkernel_intern_packedFile_c
===================================================================
RCS file: 
/cvs/ports/graphics/blender/patches/patch-source_blender_blenkernel_intern_packedFile_c,v
retrieving revision 1.11
diff -u -p -r1.11 patch-source_blender_blenkernel_intern_packedFile_c
--- patches/patch-source_blender_blenkernel_intern_packedFile_c 29 Nov 2020 
19:57:01 -0000      1.11
+++ patches/patch-source_blender_blenkernel_intern_packedFile_c 18 Mar 2021 
03:27:00 -0000
@@ -1,9 +1,9 @@
 $OpenBSD: patch-source_blender_blenkernel_intern_packedFile_c,v 1.11 
2020/11/29 19:57:01 sthen Exp $
 
 Index: source/blender/blenkernel/intern/packedFile.c
---- source/blender/blenkernel/intern/packedFile.c.orig Wed Nov 25 14:01:32 2020
-+++ source/blender/blenkernel/intern/packedFile.c      Sat Nov 28 21:50:54 2020
-@@ -330,7 +330,7 @@ int BKE_packedfile_write_to_file(ReportList *reports,
+--- source/blender/blenkernel/intern/packedFile.c.orig
++++ source/blender/blenkernel/intern/packedFile.c
+@@ -333,7 +333,7 @@ int BKE_packedfile_write_to_file(ReportList *reports,
    /* make sure the path to the file exists... */
    BLI_make_existing_file(name);
  
Index: patches/patch-source_blender_blenloader_intern_readfile_h
===================================================================
RCS file: 
/cvs/ports/graphics/blender/patches/patch-source_blender_blenloader_intern_readfile_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-source_blender_blenloader_intern_readfile_h
--- patches/patch-source_blender_blenloader_intern_readfile_h   29 Nov 2020 
19:57:01 -0000      1.1
+++ patches/patch-source_blender_blenloader_intern_readfile_h   18 Mar 2021 
03:27:00 -0000
@@ -1,9 +1,9 @@
 $OpenBSD: patch-source_blender_blenloader_intern_readfile_h,v 1.1 2020/11/29 
19:57:01 sthen Exp $
 
 Index: source/blender/blenloader/intern/readfile.h
---- source/blender/blenloader/intern/readfile.h.orig   Wed Nov 25 14:01:32 2020
-+++ source/blender/blenloader/intern/readfile.h        Sat Nov 28 21:50:54 2020
-@@ -62,7 +62,8 @@ enum eFileDataFlag {
+--- source/blender/blenloader/intern/readfile.h.orig
++++ source/blender/blenloader/intern/readfile.h
+@@ -59,7 +59,8 @@ enum eFileDataFlag {
  #  pragma GCC poison off_t
  #endif
  
Index: patches/patch-source_blender_blenloader_intern_writefile_c
===================================================================
RCS file: 
/cvs/ports/graphics/blender/patches/patch-source_blender_blenloader_intern_writefile_c,v
retrieving revision 1.16
diff -u -p -r1.16 patch-source_blender_blenloader_intern_writefile_c
--- patches/patch-source_blender_blenloader_intern_writefile_c  29 Nov 2020 
19:57:01 -0000      1.16
+++ patches/patch-source_blender_blenloader_intern_writefile_c  18 Mar 2021 
03:27:00 -0000
@@ -1,9 +1,9 @@
 $OpenBSD: patch-source_blender_blenloader_intern_writefile_c,v 1.16 2020/11/29 
19:57:01 sthen Exp $
 
 Index: source/blender/blenloader/intern/writefile.c
---- source/blender/blenloader/intern/writefile.c.orig  Wed Nov 25 14:01:32 2020
-+++ source/blender/blenloader/intern/writefile.c       Sat Nov 28 21:50:54 2020
-@@ -216,7 +216,7 @@ static bool ww_open_none(WriteWrap *ww, const char *fi
+--- source/blender/blenloader/intern/writefile.c.orig
++++ source/blender/blenloader/intern/writefile.c
+@@ -173,7 +173,7 @@ static bool ww_open_none(WriteWrap *ww, const char *fi
  {
    int file;
  
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/graphics/blender/pkg/PLIST,v
retrieving revision 1.29
diff -u -p -r1.29 PLIST
--- pkg/PLIST   29 Nov 2020 19:57:01 -0000      1.29
+++ pkg/PLIST   18 Mar 2021 03:27:06 -0000
@@ -1364,6 +1364,7 @@ share/blender/datafiles/blender_icons32/
 share/blender/datafiles/blender_icons_geom.py
 share/blender/datafiles/blender_icons_geom_update.py
 share/blender/datafiles/blender_icons_update.py
+share/blender/datafiles/blender_logo.png
 share/blender/datafiles/brushicons/
 share/blender/datafiles/brushicons/blob.png
 share/blender/datafiles/brushicons/blur.png
@@ -1480,6 +1481,7 @@ share/blender/datafiles/icons/brush.scul
 share/blender/datafiles/icons/brush.sculpt.cloth.dat
 share/blender/datafiles/icons/brush.sculpt.crease.dat
 share/blender/datafiles/icons/brush.sculpt.displacement_eraser.dat
+share/blender/datafiles/icons/brush.sculpt.displacement_smear.dat
 share/blender/datafiles/icons/brush.sculpt.draw.dat
 share/blender/datafiles/icons/brush.sculpt.draw_face_sets.dat
 share/blender/datafiles/icons/brush.sculpt.draw_sharp.dat
@@ -1687,6 +1689,7 @@ share/blender/datafiles/studiolights/mat
 share/blender/datafiles/studiolights/studio/
 share/blender/datafiles/studiolights/studio/basic.sl
 share/blender/datafiles/studiolights/studio/outdoor.sl
+share/blender/datafiles/studiolights/studio/paint.sl
 share/blender/datafiles/studiolights/studio/rim.sl
 share/blender/datafiles/studiolights/studio/studio.sl
 share/blender/datafiles/studiolights/world/
@@ -2255,7 +2258,9 @@ share/blender/scripts/addons/blenderkit/
 ${MODPY_COMMENT}share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}/
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}append_link.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}asset_bar_op.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}asset_inspector.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}asset_pack_bg.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}autothumb.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}autothumb_material_bg.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}autothumb_model_bg.${MODPY_PYC_MAGIC_TAG}pyc
@@ -2265,11 +2270,14 @@ share/blender/scripts/addons/blenderkit/
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}colors.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}download.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}icons.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}image_utils.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}oauth.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}overrides.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}paths.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}ratings.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}rerequests.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}resolutions.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}resolutions_bg.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}search.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}tasks_queue.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}ui.${MODPY_PYC_MAGIC_TAG}pyc
@@ -2280,12 +2288,28 @@ share/blender/scripts/addons/blenderkit/
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/blenderkit/${MODPY_PYCACHE}version_checker.${MODPY_PYC_MAGIC_TAG}pyc
 share/blender/scripts/addons/blenderkit/append_link.py
+share/blender/scripts/addons/blenderkit/asset_bar_op.py
 share/blender/scripts/addons/blenderkit/asset_inspector.py
+share/blender/scripts/addons/blenderkit/asset_pack_bg.py
 share/blender/scripts/addons/blenderkit/autothumb.py
 share/blender/scripts/addons/blenderkit/autothumb_material_bg.py
 share/blender/scripts/addons/blenderkit/autothumb_model_bg.py
 share/blender/scripts/addons/blenderkit/bg_blender.py
 share/blender/scripts/addons/blenderkit/bkit_oauth.py
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/__init__.py
+${MODPY_COMMENT}share/blender/scripts/addons/blenderkit/bl_ui_widgets/${MODPY_PYCACHE}/
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/${MODPY_PYCACHE}bl_ui_button.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/${MODPY_PYCACHE}bl_ui_drag_panel.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/${MODPY_PYCACHE}bl_ui_draw_op.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/${MODPY_PYCACHE}bl_ui_label.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/${MODPY_PYCACHE}bl_ui_widget.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/bl_ui_button.py
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/bl_ui_drag_panel.py
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/bl_ui_draw_op.py
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/bl_ui_label.py
+share/blender/scripts/addons/blenderkit/bl_ui_widgets/bl_ui_widget.py
 share/blender/scripts/addons/blenderkit/blendfiles/
 share/blender/scripts/addons/blenderkit/blendfiles/cleaned.blend
 
share/blender/scripts/addons/blenderkit/blendfiles/material_thumbnailer_cycles.blend
@@ -2296,11 +2320,14 @@ share/blender/scripts/addons/blenderkit/
 share/blender/scripts/addons/blenderkit/data/categories.json
 share/blender/scripts/addons/blenderkit/download.py
 share/blender/scripts/addons/blenderkit/icons.py
+share/blender/scripts/addons/blenderkit/image_utils.py
 share/blender/scripts/addons/blenderkit/oauth.py
 share/blender/scripts/addons/blenderkit/overrides.py
 share/blender/scripts/addons/blenderkit/paths.py
 share/blender/scripts/addons/blenderkit/ratings.py
 share/blender/scripts/addons/blenderkit/rerequests.py
+share/blender/scripts/addons/blenderkit/resolutions.py
+share/blender/scripts/addons/blenderkit/resolutions_bg.py
 share/blender/scripts/addons/blenderkit/search.py
 share/blender/scripts/addons/blenderkit/tasks_queue.py
 share/blender/scripts/addons/blenderkit/thumbnails/
@@ -2311,8 +2338,6 @@ share/blender/scripts/addons/blenderkit/
 share/blender/scripts/addons/blenderkit/thumbnails/fp.png
 share/blender/scripts/addons/blenderkit/thumbnails/locked.png
 share/blender/scripts/addons/blenderkit/thumbnails/locked_large.png
-share/blender/scripts/addons/blenderkit/thumbnails/rating_ui.png
-share/blender/scripts/addons/blenderkit/thumbnails/rating_ui_empty.png
 share/blender/scripts/addons/blenderkit/thumbnails/star_white.png
 share/blender/scripts/addons/blenderkit/thumbnails/thumbnail_not_available.jpg
 share/blender/scripts/addons/blenderkit/thumbnails/thumbnail_notready.jpg
@@ -2756,6 +2781,7 @@ share/blender/scripts/addons/io_scene_gl
 
share/blender/scripts/addons/io_scene_gltf2/blender/imp/${MODPY_PYCACHE}gltf2_blender_scene.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/io_scene_gltf2/blender/imp/${MODPY_PYCACHE}gltf2_blender_texture.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/io_scene_gltf2/blender/imp/${MODPY_PYCACHE}gltf2_blender_vnode.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/io_scene_gltf2/blender/imp/${MODPY_PYCACHE}gltf2_io_draco_compression_extension.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_clearcoat.py
 
share/blender/scripts/addons/io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py
 
share/blender/scripts/addons/io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_unlit.py
@@ -2774,6 +2800,7 @@ share/blender/scripts/addons/io_scene_gl
 share/blender/scripts/addons/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
 
share/blender/scripts/addons/io_scene_gltf2/blender/imp/gltf2_blender_texture.py
 share/blender/scripts/addons/io_scene_gltf2/blender/imp/gltf2_blender_vnode.py
+share/blender/scripts/addons/io_scene_gltf2/blender/imp/gltf2_io_draco_compression_extension.py
 share/blender/scripts/addons/io_scene_gltf2/io/
 share/blender/scripts/addons/io_scene_gltf2/io/__init__.py
 
${MODPY_COMMENT}share/blender/scripts/addons/io_scene_gltf2/io/${MODPY_PYCACHE}/
@@ -2781,15 +2808,15 @@ share/blender/scripts/addons/io_scene_gl
 share/blender/scripts/addons/io_scene_gltf2/io/com/
 
${MODPY_COMMENT}share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}/
 
share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}gltf2_io.${MODPY_PYC_MAGIC_TAG}pyc
-share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}gltf2_io_color_management.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}gltf2_io_constants.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}gltf2_io_debug.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}gltf2_io_draco_compression_extension.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}gltf2_io_extensions.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/io_scene_gltf2/io/com/${MODPY_PYCACHE}gltf2_io_lights_punctual.${MODPY_PYC_MAGIC_TAG}pyc
 share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io.py
-share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_color_management.py
 share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_constants.py
 share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_debug.py
+share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py
 share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_extensions.py
 share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_lights_punctual.py
 share/blender/scripts/addons/io_scene_gltf2/io/exp/
@@ -3128,6 +3155,7 @@ share/blender/scripts/addons/object_coll
 share/blender/scripts/addons/object_collection_manager/__init__.py
 
${MODPY_COMMENT}share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}/
 
share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}cm_init.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}internals.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}operator_utils.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}operators.${MODPY_PYC_MAGIC_TAG}pyc
@@ -3137,6 +3165,7 @@ share/blender/scripts/addons/object_coll
 
share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}qcd_move_widget.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}qcd_operators.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/object_collection_manager/${MODPY_PYCACHE}ui.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/object_collection_manager/cm_init.py
 share/blender/scripts/addons/object_collection_manager/icons/
 share/blender/scripts/addons/object_collection_manager/icons/minus.png
 share/blender/scripts/addons/object_collection_manager/internals.py
@@ -3648,6 +3677,20 @@ share/blender/scripts/addons/presets/ope
 
share/blender/scripts/addons/presets/operator/mesh.primitive_xyz_function_surface/sterosphere.py
 
share/blender/scripts/addons/presets/operator/mesh.primitive_xyz_function_surface/torus.py
 
share/blender/scripts/addons/presets/operator/mesh.primitive_xyz_function_surface/twisted_torus.py
+share/blender/scripts/addons/presets/operator/sun_position/
+${MODPY_COMMENT}share/blender/scripts/addons/presets/operator/sun_position/${MODPY_PYCACHE}/
+share/blender/scripts/addons/presets/operator/sun_position/${MODPY_PYCACHE}chongqing.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/presets/operator/sun_position/${MODPY_PYCACHE}kinshasa.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/presets/operator/sun_position/${MODPY_PYCACHE}london.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/presets/operator/sun_position/${MODPY_PYCACHE}new_york.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/presets/operator/sun_position/${MODPY_PYCACHE}sao_paulo.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/presets/operator/sun_position/${MODPY_PYCACHE}sydney.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/presets/operator/sun_position/chongqing.py
+share/blender/scripts/addons/presets/operator/sun_position/kinshasa.py
+share/blender/scripts/addons/presets/operator/sun_position/london.py
+share/blender/scripts/addons/presets/operator/sun_position/new_york.py
+share/blender/scripts/addons/presets/operator/sun_position/sao_paulo.py
+share/blender/scripts/addons/presets/operator/sun_position/sydney.py
 share/blender/scripts/addons/presets/pov/
 share/blender/scripts/addons/presets/pov/light/
 share/blender/scripts/addons/presets/pov/light/01_(4800K)_Direct_Sun.py
@@ -4009,6 +4052,7 @@ share/blender/scripts/addons/rigify/rigs
 
${MODPY_COMMENT}share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}/
 
share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}arm.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}front_paw.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}leg.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}limb_rigs.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}limb_utils.${MODPY_PYC_MAGIC_TAG}pyc
@@ -4019,6 +4063,7 @@ share/blender/scripts/addons/rigify/rigs
 
share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}super_limb.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/addons/rigify/rigs/limbs/${MODPY_PYCACHE}super_palm.${MODPY_PYC_MAGIC_TAG}pyc
 share/blender/scripts/addons/rigify/rigs/limbs/arm.py
+share/blender/scripts/addons/rigify/rigs/limbs/front_paw.py
 share/blender/scripts/addons/rigify/rigs/limbs/leg.py
 share/blender/scripts/addons/rigify/rigs/limbs/limb_rigs.py
 share/blender/scripts/addons/rigify/rigs/limbs/limb_utils.py
@@ -4360,6 +4405,7 @@ share/blender/scripts/modules/bl_i18n_ut
 
share/blender/scripts/modules/bl_i18n_utils/${MODPY_PYCACHE}settings.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bl_i18n_utils/${MODPY_PYCACHE}settings_user.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bl_i18n_utils/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/modules/bl_i18n_utils/${MODPY_PYCACHE}utils_cli.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bl_i18n_utils/${MODPY_PYCACHE}utils_languages_menu.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bl_i18n_utils/${MODPY_PYCACHE}utils_rtl.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bl_i18n_utils/${MODPY_PYCACHE}utils_spell_check.${MODPY_PYC_MAGIC_TAG}pyc
@@ -4368,6 +4414,7 @@ share/blender/scripts/modules/bl_i18n_ut
 share/blender/scripts/modules/bl_i18n_utils/settings.py
 share/blender/scripts/modules/bl_i18n_utils/settings_user.py
 share/blender/scripts/modules/bl_i18n_utils/utils.py
+share/blender/scripts/modules/bl_i18n_utils/utils_cli.py
 share/blender/scripts/modules/bl_i18n_utils/utils_languages_menu.py
 share/blender/scripts/modules/bl_i18n_utils/utils_rtl.py
 share/blender/scripts/modules/bl_i18n_utils/utils_spell_check.py
@@ -4379,10 +4426,12 @@ share/blender/scripts/modules/bl_keymap_
 
share/blender/scripts/modules/bl_keymap_utils/${MODPY_PYCACHE}keymap_from_toolbar.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bl_keymap_utils/${MODPY_PYCACHE}keymap_hierarchy.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bl_keymap_utils/${MODPY_PYCACHE}platform_helpers.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/modules/bl_keymap_utils/${MODPY_PYCACHE}versioning.${MODPY_PYC_MAGIC_TAG}pyc
 share/blender/scripts/modules/bl_keymap_utils/io.py
 share/blender/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
 share/blender/scripts/modules/bl_keymap_utils/keymap_hierarchy.py
 share/blender/scripts/modules/bl_keymap_utils/platform_helpers.py
+share/blender/scripts/modules/bl_keymap_utils/versioning.py
 share/blender/scripts/modules/bl_previews_utils/
 
${MODPY_COMMENT}share/blender/scripts/modules/bl_previews_utils/${MODPY_PYCACHE}/
 
share/blender/scripts/modules/bl_previews_utils/${MODPY_PYCACHE}bl_previews_render.${MODPY_PYC_MAGIC_TAG}pyc
@@ -4415,6 +4464,7 @@ share/blender/scripts/modules/bpy_extras
 ${MODPY_COMMENT}share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}/
 
share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}anim_utils.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}asset_utils.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}image_utils.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}io_utils.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}keyconfig_utils.${MODPY_PYC_MAGIC_TAG}pyc
@@ -4424,6 +4474,7 @@ share/blender/scripts/modules/bpy_extras
 
share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}object_utils.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/modules/bpy_extras/${MODPY_PYCACHE}view3d_utils.${MODPY_PYC_MAGIC_TAG}pyc
 share/blender/scripts/modules/bpy_extras/anim_utils.py
+share/blender/scripts/modules/bpy_extras/asset_utils.py
 share/blender/scripts/modules/bpy_extras/image_utils.py
 share/blender/scripts/modules/bpy_extras/io_utils.py
 share/blender/scripts/modules/bpy_extras/keyconfig_utils.py
@@ -4833,12 +4884,13 @@ ${MODPY_COMMENT}share/blender/scripts/st
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}add_mesh_torus.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}anim.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}assets.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}clip.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}console.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}constraint.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}file.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}freestyle.${MODPY_PYC_MAGIC_TAG}pyc
-share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}gpencil_mesh_bake.${MODPY_PYC_MAGIC_TAG}pyc
+share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}geometry_nodes.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}image.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}mesh.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}node.${MODPY_PYC_MAGIC_TAG}pyc
@@ -4850,7 +4902,6 @@ share/blender/scripts/startup/bl_operato
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}rigidbody.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}screen_play_rendered_anim.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}sequencer.${MODPY_PYC_MAGIC_TAG}pyc
-share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}simulation.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}userpref.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}uvcalc_follow_active.${MODPY_PYC_MAGIC_TAG}pyc
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}uvcalc_lightmap.${MODPY_PYC_MAGIC_TAG}pyc
@@ -4859,6 +4910,7 @@ share/blender/scripts/startup/bl_operato
 
share/blender/scripts/startup/bl_operators/${MODPY_PYCACHE}wm.${MODPY_PYC_MAGIC_TAG}pyc
 share/blender/scripts/startup/bl_operators/add_mesh_torus.py
 share/blender/scripts/startup/bl_operators/anim.py
+share/blender/scripts/startup/bl_operators/assets.py
 share/blender/scripts/startup/bl_operators/bmesh/
 
${MODPY_COMMENT}share/blender/scripts/startup/bl_operators/bmesh/${MODPY_PYCACHE}/
 
share/blender/scripts/startup/bl_operators/bmesh/${MODPY_PYCACHE}find_adjacent.${MODPY_PYC_MAGIC_TAG}pyc
@@ -4868,7 +4920,7 @@ share/blender/scripts/startup/bl_operato
 share/blender/scripts/startup/bl_operators/constraint.py
 share/blender/scripts/startup/bl_operators/file.py
 share/blender/scripts/startup/bl_operators/freestyle.py
-share/blender/scripts/startup/bl_operators/gpencil_mesh_bake.py
+share/blender/scripts/startup/bl_operators/geometry_nodes.py
 share/blender/scripts/startup/bl_operators/image.py
 share/blender/scripts/startup/bl_operators/mesh.py
 share/blender/scripts/startup/bl_operators/node.py
@@ -4880,7 +4932,6 @@ share/blender/scripts/startup/bl_operato
 share/blender/scripts/startup/bl_operators/rigidbody.py
 share/blender/scripts/startup/bl_operators/screen_play_rendered_anim.py
 share/blender/scripts/startup/bl_operators/sequencer.py
-share/blender/scripts/startup/bl_operators/simulation.py
 share/blender/scripts/startup/bl_operators/userpref.py
 share/blender/scripts/startup/bl_operators/uvcalc_follow_active.py
 share/blender/scripts/startup/bl_operators/uvcalc_lightmap.py
@@ -5104,11 +5155,11 @@ share/doc/blender/BSL-1.0.txt
 share/doc/blender/FTL.txt
 share/doc/blender/GPL-3.0.txt
 share/doc/blender/GPL-license.txt
-share/doc/blender/ISC.txt
 share/doc/blender/MIT.txt
 share/doc/blender/OpenColorIO.txt
 share/doc/blender/OpenSSL.txt
 share/doc/blender/Python.txt
+share/doc/blender/THIRD-PARTY-LICENSES.txt
 share/doc/blender/bfont.ttf.txt
 share/doc/blender/bmonofont-i18n.ttf.txt
 share/doc/blender/copyright.txt

Reply via email to