[Bf-docboard-svn] bf-manual: [9157] trunk/blender_docs/tools_maintenance/generate_node_screenshots.py: Node Screenshots: add support for other node tree types

Aaron Carlisle noreply at blender.org
Tue Mar 29 04:54:23 CEST 2022


Revision: 9157
          https://developer.blender.org/rBM9157
Author:   Blendify
Date:     2022-03-29 04:54:22 +0200 (Tue, 29 Mar 2022)
Log Message:
-----------
Node Screenshots: add support for other node tree types

Modified Paths:
--------------
    trunk/blender_docs/tools_maintenance/generate_node_screenshots.py

Modified: trunk/blender_docs/tools_maintenance/generate_node_screenshots.py
===================================================================
--- trunk/blender_docs/tools_maintenance/generate_node_screenshots.py	2022-03-26 02:58:20 UTC (rev 9156)
+++ trunk/blender_docs/tools_maintenance/generate_node_screenshots.py	2022-03-29 02:54:22 UTC (rev 9157)
@@ -39,15 +39,27 @@
     dimensions = node.dimensions
 
     view_to_region = region.view2d.view_to_region
-    bottom_left = view_to_region(location.x, location.y - dimensions.y, clip=False)
-    top_right = view_to_region(location.x + dimensions.x, location.y, clip=False)
+    bottom_left = view_to_region(
+        location.x, location.y - dimensions.y, clip=False)
+    top_right = view_to_region(
+        location.x + dimensions.x, location.y, clip=False)
 
     return Rectangle(bottom_left[0], bottom_left[1], top_right[0] - bottom_left[0], top_right[1] - bottom_left[1])
 
 
-def iter_node_names():
-    for cls in bpy.types.CompositorNode.__subclasses__():
-        yield cls.__name__
+def iter_node_names(tree_type):
+    if tree_type == 'GEOMETRY':
+        for cls in bpy.types.GeometryNode.__subclasses__():
+            yield cls.__name__
+    elif tree_type == 'COMPOSITING':
+        for cls in bpy.types.CompositorNode.__subclasses__():
+            yield cls.__name__
+    elif tree_type == 'SHADER':
+        for cls in bpy.types.ShaderNode.__subclasses__():
+            yield cls.__name__
+    elif tree_type == 'TEXTURE':
+        for cls in bpy.types.TextureNode.__subclasses__():
+            yield cls.__name__
 
 
 class MakeScreenshotsOperator(bpy.types.Operator):
@@ -57,7 +69,8 @@
     def invoke(self, context, event):
         context.window_manager.modal_handler_add(self)
 
-        self.node_names_iterator = islice(iter_node_names(), 10000)
+        tree_type = context.space_data.node_tree.type
+        self.node_names_iterator = islice(iter_node_names(tree_type), 10000)
 
         return self.prepare_next_node(context)
 
@@ -78,8 +91,8 @@
 
     def modal(self, context, event):
         temp_path = f"/home/jacques/Downloads/temp.png"
-        filepath = f"/home/jacques/Downloads/compositing_node-types_{self.current_name}.png"
-        bpy.ops.screen.screenshot(full=False, filepath=temp_path)
+        filepath = f"/home/jacques/Downloads/node-types_{self.current_name}.png"
+        bpy.ops.screen.screenshot_area(filepath=temp_path)
 
         rect = node_region_rect(context.region, self.current_node)
         margin = 15
@@ -88,7 +101,7 @@
         rect.width += margin * 2
         rect.height += margin * 2
 
-        bpy.ops.screen.screenshot(full=False, filepath=filepath)
+        bpy.ops.screen.screenshot_area(filepath=filepath)
 
         cut_image(temp_path, filepath, rect)
         context.area.tag_redraw()



More information about the Bf-docboard-svn mailing list