Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2021-01-28 17:16:15 +0300
committerClément Foucault <foucault.clem@gmail.com>2021-01-28 17:16:15 +0300
commite58ef7db5b2d981557e6c06837306852571a8af0 (patch)
tree7b40f3f1576cd9900bdab9023bdbae6417c1a32a /release
parent9c4dbb592b20d01b00677d6588c20247b45064d3 (diff)
parent3c7d5ec829af1d35f4272b0e4b549d45699af43b (diff)
Merge branch 'master' into eevee-dof-refactor
Diffstat (limited to 'release')
-rwxr-xr-xrelease/datafiles/blender_icons_update.py10
-rw-r--r--release/datafiles/icons/brush.sculpt.displacement_smear.datbin0 -> 4436 bytes
-rw-r--r--release/datafiles/icons/brush.sculpt.draw_sharp.datbin2492 -> 2492 bytes
-rw-r--r--release/datafiles/icons/ops.generic.select.datbin296 -> 296 bytes
-rw-r--r--release/datafiles/icons/ops.generic.select_box.datbin2312 -> 2312 bytes
-rw-r--r--release/datafiles/icons/ops.generic.select_circle.datbin2564 -> 2564 bytes
-rw-r--r--release/datafiles/icons/ops.generic.select_lasso.datbin2402 -> 2402 bytes
-rw-r--r--release/datafiles/icons/ops.mesh.primitive_cone_add_gizmo.datbin2096 -> 2132 bytes
-rw-r--r--release/datafiles/icons/ops.mesh.primitive_cube_add_gizmo.datbin980 -> 980 bytes
-rw-r--r--release/datafiles/icons/ops.mesh.primitive_cylinder_add_gizmo.datbin5372 -> 5372 bytes
-rw-r--r--release/datafiles/icons/ops.mesh.primitive_grid_add_gizmo.datbin566 -> 566 bytes
-rw-r--r--release/datafiles/icons/ops.mesh.primitive_sphere_add_gizmo.datbin6236 -> 6236 bytes
-rw-r--r--release/datafiles/icons/ops.mesh.primitive_torus_add_gizmo.datbin8252 -> 8252 bytes
-rwxr-xr-xrelease/datafiles/prvicons_update.py6
-rw-r--r--release/datafiles/userdef/userdef_default.c1
-rw-r--r--release/datafiles/userdef/userdef_default_theme.c2
-rw-r--r--release/scripts/modules/bl_keymap_utils/io.py8
-rw-r--r--release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py13
-rw-r--r--release/scripts/modules/bl_keymap_utils/keymap_hierarchy.py1
-rw-r--r--release/scripts/modules/bpy_extras/node_shader_utils.py2
-rw-r--r--release/scripts/modules/rna_manual_reference.py155
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/blender_default.py204
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py26
-rw-r--r--release/scripts/startup/bl_operators/geometry_nodes.py10
-rw-r--r--release/scripts/startup/bl_operators/userpref.py12
-rw-r--r--release/scripts/startup/bl_operators/wm.py46
-rw-r--r--release/scripts/startup/bl_ui/properties_constraint.py10
-rw-r--r--release/scripts/startup/bl_ui/properties_data_armature.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_data_gpencil.py13
-rw-r--r--release/scripts/startup/bl_ui/properties_data_volume.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_grease_pencil_common.py42
-rw-r--r--release/scripts/startup/bl_ui/properties_material.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_cloth.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_common.py6
-rw-r--r--release/scripts/startup/bl_ui/properties_render.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_world.py2
-rw-r--r--release/scripts/startup/bl_ui/space_clip.py216
-rw-r--r--release/scripts/startup/bl_ui/space_dopesheet.py10
-rw-r--r--release/scripts/startup/bl_ui/space_filebrowser.py8
-rw-r--r--release/scripts/startup/bl_ui/space_node.py16
-rw-r--r--release/scripts/startup/bl_ui/space_outliner.py4
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py39
-rw-r--r--release/scripts/startup/bl_ui/space_time.py3
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_common.py2
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_toolbar.py175
-rw-r--r--release/scripts/startup/bl_ui/space_topbar.py2
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py25
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py166
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py40
-rw-r--r--release/scripts/startup/nodeitems_builtins.py10
-rw-r--r--release/scripts/templates_py/driver_functions.py8
-rw-r--r--release/windows/batch/blender_debug_gpu.cmd2
-rw-r--r--release/windows/msix/Assets/Square150x150Logo.pngbin8864 -> 0 bytes
-rw-r--r--release/windows/msix/Assets/Square150x150Logo.scale-100.pngbin0 -> 4072 bytes
-rw-r--r--release/windows/msix/Assets/Square150x150Logo.scale-125.pngbin0 -> 5230 bytes
-rw-r--r--release/windows/msix/Assets/Square150x150Logo.scale-150.pngbin0 -> 6420 bytes
-rw-r--r--release/windows/msix/Assets/Square150x150Logo.scale-200.pngbin0 -> 9068 bytes
-rw-r--r--release/windows/msix/Assets/Square150x150Logo.scale-400.pngbin0 -> 20957 bytes
-rw-r--r--release/windows/msix/Assets/Square310x310Logo.pngbin24649 -> 0 bytes
-rw-r--r--release/windows/msix/Assets/Square310x310Logo.scale-100.pngbin0 -> 9463 bytes
-rw-r--r--release/windows/msix/Assets/Square310x310Logo.scale-125.pngbin0 -> 12142 bytes
-rw-r--r--release/windows/msix/Assets/Square310x310Logo.scale-150.pngbin0 -> 15097 bytes
-rw-r--r--release/windows/msix/Assets/Square310x310Logo.scale-200.pngbin0 -> 21762 bytes
-rw-r--r--release/windows/msix/Assets/Square310x310Logo.scale-400.pngbin0 -> 52027 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.pngbin0 -> 604 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.pngbin0 -> 918 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.pngbin0 -> 8027 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.pngbin0 -> 1170 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.pngbin0 -> 1708 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-16.pngbin0 -> 604 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.pngbin0 -> 8027 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-32.pngbin0 -> 1170 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-48.pngbin0 -> 1708 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.pngbin2098 -> 0 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.scale-100.pngbin0 -> 1581 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.scale-125.pngbin0 -> 1886 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.scale-150.pngbin0 -> 2210 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.scale-200.pngbin0 -> 2855 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.scale-400.pngbin0 -> 5296 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.targetsize-16.pngbin0 -> 604 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.targetsize-24.pngbin0 -> 918 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.targetsize-24_altform-unplated.pngbin0 -> 918 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.targetsize-256.pngbin0 -> 8027 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.targetsize-32.pngbin0 -> 1170 bytes
-rw-r--r--release/windows/msix/Assets/Square44x44Logo.targetsize-48.pngbin0 -> 1708 bytes
-rw-r--r--release/windows/msix/Assets/Square71x71Logo.pngbin4297 -> 0 bytes
-rw-r--r--release/windows/msix/Assets/Square71x71Logo.scale-100.pngbin0 -> 2786 bytes
-rw-r--r--release/windows/msix/Assets/Square71x71Logo.scale-125.pngbin0 -> 3446 bytes
-rw-r--r--release/windows/msix/Assets/Square71x71Logo.scale-150.pngbin0 -> 4212 bytes
-rw-r--r--release/windows/msix/Assets/Square71x71Logo.scale-200.pngbin0 -> 5629 bytes
-rw-r--r--release/windows/msix/Assets/Square71x71Logo.scale-400.pngbin0 -> 12429 bytes
-rw-r--r--release/windows/msix/Assets/StoreLogo.pngbin5265 -> 0 bytes
-rw-r--r--release/windows/msix/Assets/StoreLogo.scale-100.pngbin0 -> 1774 bytes
-rw-r--r--release/windows/msix/Assets/StoreLogo.scale-125.pngbin0 -> 2168 bytes
-rw-r--r--release/windows/msix/Assets/StoreLogo.scale-150.pngbin0 -> 2503 bytes
-rw-r--r--release/windows/msix/Assets/StoreLogo.scale-200.pngbin0 -> 3227 bytes
-rw-r--r--release/windows/msix/Assets/StoreLogo.scale-400.pngbin0 -> 6039 bytes
-rw-r--r--release/windows/msix/Assets/Wide310x150Logo.pngbin10385 -> 0 bytes
-rw-r--r--release/windows/msix/Assets/Wide310x150Logo.scale-100.pngbin0 -> 5894 bytes
-rw-r--r--release/windows/msix/Assets/Wide310x150Logo.scale-125.pngbin0 -> 7746 bytes
-rw-r--r--release/windows/msix/Assets/Wide310x150Logo.scale-150.pngbin0 -> 9669 bytes
-rw-r--r--release/windows/msix/Assets/Wide310x150Logo.scale-200.pngbin0 -> 13722 bytes
-rw-r--r--release/windows/msix/Assets/Wide310x150Logo.scale-400.pngbin0 -> 32933 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-100.pngbin0 -> 4140 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-125.pngbin0 -> 5288 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-150.pngbin0 -> 6501 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-200.pngbin0 -> 9172 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-400.pngbin0 -> 21142 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-100.pngbin0 -> 4218 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-125.pngbin0 -> 5309 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-150.pngbin0 -> 6586 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-200.pngbin0 -> 9228 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-400.pngbin0 -> 22953 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-16.pngbin0 -> 404 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-24.pngbin0 -> 582 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-256.pngbin0 -> 5734 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-32.pngbin0 -> 744 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-48.pngbin0 -> 1107 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-16.pngbin0 -> 404 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-256.pngbin0 -> 5734 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-32.pngbin0 -> 744 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-48.pngbin0 -> 1107 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-100.pngbin0 -> 1033 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-125.pngbin0 -> 1250 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-150.pngbin0 -> 1481 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-200.pngbin0 -> 1911 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-400.pngbin0 -> 3712 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-16.pngbin0 -> 404 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24.pngbin0 -> 582 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24_altform-unplated.pngbin0 -> 582 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-256.pngbin0 -> 5734 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-32.pngbin0 -> 744 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-48.pngbin0 -> 1107 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-100.pngbin0 -> 1387 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-125.pngbin0 -> 1722 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-150.pngbin0 -> 2066 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-200.pngbin0 -> 2668 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-400.pngbin0 -> 5381 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/StoreLogo.scale-100.pngbin0 -> 1166 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/StoreLogo.scale-125.pngbin0 -> 1421 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/StoreLogo.scale-150.pngbin0 -> 1649 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/StoreLogo.scale-200.pngbin0 -> 2172 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/StoreLogo.scale-400.pngbin0 -> 4236 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-100.pngbin0 -> 8745 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-125.pngbin0 -> 11382 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-150.pngbin0 -> 14185 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-200.pngbin0 -> 20111 bytes
-rw-r--r--release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-400.pngbin0 -> 47594 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-100.pngbin0 -> 1833 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-125.pngbin0 -> 2276 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-150.pngbin0 -> 2711 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-200.pngbin0 -> 3742 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-400.pngbin0 -> 8083 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-100.pngbin0 -> 3853 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-125.pngbin0 -> 4778 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-150.pngbin0 -> 5923 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-200.pngbin0 -> 8441 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-400.pngbin0 -> 20646 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-16.pngbin0 -> 404 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-24.pngbin0 -> 583 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-256.pngbin0 -> 5734 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-32.pngbin0 -> 743 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-48.pngbin0 -> 1105 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-16.pngbin0 -> 404 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-256.pngbin0 -> 5734 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-32.pngbin0 -> 743 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-48.pngbin0 -> 1105 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-100.pngbin0 -> 1033 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-125.pngbin0 -> 1250 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-150.pngbin0 -> 1482 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-200.pngbin0 -> 1911 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-400.pngbin0 -> 3712 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-16.pngbin0 -> 404 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24.pngbin0 -> 583 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24_altform-unplated.pngbin0 -> 583 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-256.pngbin0 -> 5734 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-32.pngbin0 -> 743 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-48.pngbin0 -> 1105 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-100.pngbin0 -> 1239 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-125.pngbin0 -> 1531 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-150.pngbin0 -> 1846 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-200.pngbin0 -> 2386 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-400.pngbin0 -> 4913 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/StoreLogo.scale-100.pngbin0 -> 1166 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/StoreLogo.scale-125.pngbin0 -> 1419 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/StoreLogo.scale-150.pngbin0 -> 1649 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/StoreLogo.scale-200.pngbin0 -> 2171 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/StoreLogo.scale-400.pngbin0 -> 4236 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-100.pngbin0 -> 2581 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-125.pngbin0 -> 3263 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-150.pngbin0 -> 3953 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-200.pngbin0 -> 5535 bytes
-rw-r--r--release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-400.pngbin0 -> 12371 bytes
-rw-r--r--release/windows/msix/README.md5
-rw-r--r--release/windows/msix/create_msix_package.py13
-rw-r--r--release/windows/msix/priconfig.xml26
196 files changed, 918 insertions, 435 deletions
diff --git a/release/datafiles/blender_icons_update.py b/release/datafiles/blender_icons_update.py
index ed96afd7ea6..8167b8b25e6 100755
--- a/release/datafiles/blender_icons_update.py
+++ b/release/datafiles/blender_icons_update.py
@@ -17,7 +17,7 @@ inkscape_bin = os.environ.get("INKSCAPE_BIN", "inkscape")
blender_bin = os.environ.get("BLENDER_BIN", "blender")
if sys.platform == 'darwin':
- inkscape_app_path = '/Applications/Inkscape.app/Contents/Resources/script'
+ inkscape_app_path = '/Applications/Inkscape.app/Contents/MacOS/inkscape'
if os.path.exists(inkscape_app_path):
inkscape_bin = inkscape_app_path
blender_app_path = '/Applications/Blender.app/Contents/MacOS/Blender'
@@ -29,8 +29,8 @@ cmd = (
os.path.join(BASEDIR, "blender_icons.svg"),
"--export-width=602",
"--export-height=640",
- "--without-gui",
- "--export-png=" + os.path.join(BASEDIR, "blender_icons16.png"),
+ "--export-type=png",
+ "--export-filename=" + os.path.join(BASEDIR, "blender_icons16.png"),
)
run(cmd)
@@ -39,8 +39,8 @@ cmd = (
os.path.join(BASEDIR, "blender_icons.svg"),
"--export-width=1204",
"--export-height=1280",
- "--without-gui",
- "--export-png=" + os.path.join(BASEDIR, "blender_icons32.png"),
+ "--export-type=png",
+ "--export-filename=" + os.path.join(BASEDIR, "blender_icons32.png"),
)
run(cmd)
diff --git a/release/datafiles/icons/brush.sculpt.displacement_smear.dat b/release/datafiles/icons/brush.sculpt.displacement_smear.dat
new file mode 100644
index 00000000000..5d422130ea3
--- /dev/null
+++ b/release/datafiles/icons/brush.sculpt.displacement_smear.dat
Binary files differ
diff --git a/release/datafiles/icons/brush.sculpt.draw_sharp.dat b/release/datafiles/icons/brush.sculpt.draw_sharp.dat
index 9bea1b02894..1877c0ae4d4 100644
--- a/release/datafiles/icons/brush.sculpt.draw_sharp.dat
+++ b/release/datafiles/icons/brush.sculpt.draw_sharp.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.generic.select.dat b/release/datafiles/icons/ops.generic.select.dat
index 37a18a1ed79..1070d72d1e3 100644
--- a/release/datafiles/icons/ops.generic.select.dat
+++ b/release/datafiles/icons/ops.generic.select.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.generic.select_box.dat b/release/datafiles/icons/ops.generic.select_box.dat
index e30586c2bb8..da435ab3925 100644
--- a/release/datafiles/icons/ops.generic.select_box.dat
+++ b/release/datafiles/icons/ops.generic.select_box.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.generic.select_circle.dat b/release/datafiles/icons/ops.generic.select_circle.dat
index 9d33f73c75f..83e1deb119d 100644
--- a/release/datafiles/icons/ops.generic.select_circle.dat
+++ b/release/datafiles/icons/ops.generic.select_circle.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.generic.select_lasso.dat b/release/datafiles/icons/ops.generic.select_lasso.dat
index e26168910df..54994c48a3d 100644
--- a/release/datafiles/icons/ops.generic.select_lasso.dat
+++ b/release/datafiles/icons/ops.generic.select_lasso.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.mesh.primitive_cone_add_gizmo.dat b/release/datafiles/icons/ops.mesh.primitive_cone_add_gizmo.dat
index b416a693283..62166a71f54 100644
--- a/release/datafiles/icons/ops.mesh.primitive_cone_add_gizmo.dat
+++ b/release/datafiles/icons/ops.mesh.primitive_cone_add_gizmo.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.mesh.primitive_cube_add_gizmo.dat b/release/datafiles/icons/ops.mesh.primitive_cube_add_gizmo.dat
index 5df7d19817e..4d43734ce88 100644
--- a/release/datafiles/icons/ops.mesh.primitive_cube_add_gizmo.dat
+++ b/release/datafiles/icons/ops.mesh.primitive_cube_add_gizmo.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.mesh.primitive_cylinder_add_gizmo.dat b/release/datafiles/icons/ops.mesh.primitive_cylinder_add_gizmo.dat
index 5033ac2d477..219e5fc4ead 100644
--- a/release/datafiles/icons/ops.mesh.primitive_cylinder_add_gizmo.dat
+++ b/release/datafiles/icons/ops.mesh.primitive_cylinder_add_gizmo.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.mesh.primitive_grid_add_gizmo.dat b/release/datafiles/icons/ops.mesh.primitive_grid_add_gizmo.dat
index da83e7d9553..7d45bca4ba6 100644
--- a/release/datafiles/icons/ops.mesh.primitive_grid_add_gizmo.dat
+++ b/release/datafiles/icons/ops.mesh.primitive_grid_add_gizmo.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.mesh.primitive_sphere_add_gizmo.dat b/release/datafiles/icons/ops.mesh.primitive_sphere_add_gizmo.dat
index 16d1a7346f2..b10e6ca35b2 100644
--- a/release/datafiles/icons/ops.mesh.primitive_sphere_add_gizmo.dat
+++ b/release/datafiles/icons/ops.mesh.primitive_sphere_add_gizmo.dat
Binary files differ
diff --git a/release/datafiles/icons/ops.mesh.primitive_torus_add_gizmo.dat b/release/datafiles/icons/ops.mesh.primitive_torus_add_gizmo.dat
index 7323e6f4c30..d29ded9d930 100644
--- a/release/datafiles/icons/ops.mesh.primitive_torus_add_gizmo.dat
+++ b/release/datafiles/icons/ops.mesh.primitive_torus_add_gizmo.dat
Binary files differ
diff --git a/release/datafiles/prvicons_update.py b/release/datafiles/prvicons_update.py
index 85e92e9e564..fa526f88e96 100755
--- a/release/datafiles/prvicons_update.py
+++ b/release/datafiles/prvicons_update.py
@@ -10,7 +10,7 @@ BASEDIR = os.path.abspath(os.path.dirname(__file__))
inkscape_path = 'inkscape'
if sys.platform == 'darwin':
- inkscape_app_path = '/Applications/Inkscape.app/Contents/Resources/script'
+ inkscape_app_path = '/Applications/Inkscape.app/Contents/MacOS/inkscape'
if os.path.exists(inkscape_app_path):
inkscape_path = inkscape_app_path
@@ -19,7 +19,7 @@ cmd = (
os.path.join(BASEDIR, "prvicons.svg"),
"--export-width=1792",
"--export-height=256",
- "--without-gui",
- "--export-png=" + os.path.join(BASEDIR, "prvicons.png"),
+ "--export-type=png",
+ "--export-filename=" + os.path.join(BASEDIR, "prvicons.png"),
)
subprocess.check_call(cmd)
diff --git a/release/datafiles/userdef/userdef_default.c b/release/datafiles/userdef/userdef_default.c
index b448a230da8..2265e70df39 100644
--- a/release/datafiles/userdef/userdef_default.c
+++ b/release/datafiles/userdef/userdef_default.c
@@ -119,6 +119,7 @@ const UserDef U_default = {
.gizmo_flag = USER_GIZMO_DRAW,
.gizmo_size = 75,
+ .gizmo_size_navigate_v3d = 80,
.edit_studio_light = 0,
.lookdev_sphere_size = 150,
.vbotimeout = 120,
diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c
index 53e8cd38d02..191758277ed 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -836,7 +836,7 @@ const bTheme U_theme_default = {
.nodeclass_filter = RGBA(0x584d80ff),
.nodeclass_vector = RGBA(0x9b80ffff),
.nodeclass_texture = RGBA(0xe68745ff),
- .nodeclass_shader = RGBA(0xea7581ff),
+ .nodeclass_shader = RGBA(0x63c763ff),
.nodeclass_script = RGBA(0x084d4dff),
.nodeclass_pattern = RGBA(0x6c696fff),
.nodeclass_layout = RGBA(0x6c696fff),
diff --git a/release/scripts/modules/bl_keymap_utils/io.py b/release/scripts/modules/bl_keymap_utils/io.py
index 645a145f994..7adcd799c0f 100644
--- a/release/scripts/modules/bl_keymap_utils/io.py
+++ b/release/scripts/modules/bl_keymap_utils/io.py
@@ -74,9 +74,11 @@ def kmi_args_as_data(kmi):
s.append(f"\"key_modifier\": '{kmi.key_modifier}'")
if kmi.repeat:
- if kmi.map_type == 'KEYBOARD':
- if kmi.value in {'PRESS', 'ANY'}:
- s.append("\"repeat\": True")
+ if (
+ (kmi.map_type == 'KEYBOARD' and kmi.value in {'PRESS', 'ANY'}) or
+ (kmi.map_type == 'TEXTINPUT')
+ ):
+ s.append("\"repeat\": True")
return "{" + ", ".join(s) + "}"
diff --git a/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py b/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
index ebc5370a7af..ef398d5e08f 100644
--- a/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
+++ b/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
@@ -74,8 +74,6 @@ def generate(context, space_type, use_fallback_keys=True, use_reset=True):
if tap_reset_tool not in items_all_id:
use_tap_reset = False
- from bl_operators.wm import use_toolbar_release_hack
-
# Pie-menu style release to activate.
use_release_confirm = use_reset
@@ -437,7 +435,7 @@ def generate(context, space_type, use_fallback_keys=True, use_reset=True):
kmi = keymap.keymap_items.new(
"wm.tool_set_by_id",
- value='PRESS' if use_toolbar_release_hack else 'DOUBLE_CLICK',
+ value='DOUBLE_CLICK',
**kmi_toolbar_args_available,
)
kmi.properties.name = tap_reset_tool
@@ -451,15 +449,6 @@ def generate(context, space_type, use_fallback_keys=True, use_reset=True):
)
kmi.properties.skip_depressed = True
- if use_toolbar_release_hack:
- # ... or pass through to let the toolbar know we're released.
- # Let the operator know we're released.
- kmi = keymap.keymap_items.new(
- "wm.tool_set_by_id",
- type=kmi_toolbar_type,
- value='RELEASE',
- any=True,
- )
wm.keyconfigs.update()
return keymap
diff --git a/release/scripts/modules/bl_keymap_utils/keymap_hierarchy.py b/release/scripts/modules/bl_keymap_utils/keymap_hierarchy.py
index f92a478fb66..b5127784c1e 100644
--- a/release/scripts/modules/bl_keymap_utils/keymap_hierarchy.py
+++ b/release/scripts/modules/bl_keymap_utils/keymap_hierarchy.py
@@ -118,6 +118,7 @@ _km_hierarchy = [
('Object Non-modal', 'EMPTY', 'WINDOW', []), # mode change
+ ('View3D Placement Modal', 'EMPTY', 'WINDOW', []),
('View3D Walk Modal', 'EMPTY', 'WINDOW', []),
('View3D Fly Modal', 'EMPTY', 'WINDOW', []),
('View3D Rotate Modal', 'EMPTY', 'WINDOW', []),
diff --git a/release/scripts/modules/bpy_extras/node_shader_utils.py b/release/scripts/modules/bpy_extras/node_shader_utils.py
index 161560f7f05..54124fd4ca6 100644
--- a/release/scripts/modules/bpy_extras/node_shader_utils.py
+++ b/release/scripts/modules/bpy_extras/node_shader_utils.py
@@ -702,7 +702,7 @@ class ShaderImageTextureWrapper():
image = image.copy()
image.colorspace_settings.is_data = self.colorspace_is_data
if self.colorspace_name is not ...:
- if image.colorspace_settings.is_data != self.colorspace_is_data and image.users >= 1:
+ if image.colorspace_settings.name != self.colorspace_name and image.users >= 1:
image = image.copy()
image.colorspace_settings.name = self.colorspace_name
if self.use_alpha:
diff --git a/release/scripts/modules/rna_manual_reference.py b/release/scripts/modules/rna_manual_reference.py
index 56b92eb452f..3f5b31f8cfd 100644
--- a/release/scripts/modules/rna_manual_reference.py
+++ b/release/scripts/modules/rna_manual_reference.py
@@ -108,6 +108,7 @@ url_manual_mapping = (
("bpy.types.brush.surface_smooth_shape_preservation*", "sculpt_paint/sculpting/tools/smooth.html#bpy-types-brush-surface-smooth-shape-preservation"),
("bpy.types.brush.use_cloth_pin_simulation_boundary*", "sculpt_paint/sculpting/tools/cloth.html#bpy-types-brush-use-cloth-pin-simulation-boundary"),
("bpy.types.brushgpencilsettings.show_fill_boundary*", "grease_pencil/modes/draw/tools/fill.html#bpy-types-brushgpencilsettings-show-fill-boundary"),
+ ("bpy.types.brushgpencilsettings.use_default_eraser*", "grease_pencil/modes/draw/tools/erase.html#bpy-types-brushgpencilsettings-use-default-eraser"),
("bpy.types.cyclesrendersettings.camera_cull_margin*", "render/cycles/render_settings/simplify.html#bpy-types-cyclesrendersettings-camera-cull-margin"),
("bpy.types.fluiddomainsettings.export_manta_script*", "physics/fluid/type/domain/cache.html#bpy-types-fluiddomainsettings-export-manta-script"),
("bpy.types.fluiddomainsettings.fractions_threshold*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-fractions-threshold"),
@@ -122,9 +123,13 @@ url_manual_mapping = (
("bpy.types.materialgpencilstyle.use_stroke_holdout*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-use-stroke-holdout"),
("bpy.types.movietrackingsettings.use_tripod_solver*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-use-tripod-solver"),
("bpy.types.rendersettings.use_high_quality_normals*", "render/eevee/render_settings/performance.html#bpy-types-rendersettings-use-high-quality-normals"),
+ ("bpy.types.spaceoutliner.use_filter_case_sensitive*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-case-sensitive"),
+ ("bpy.types.spaceoutliner.use_filter_object_content*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-object-content"),
("bpy.types.toolsettings.use_proportional_connected*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-use-proportional-connected"),
("bpy.types.toolsettings.use_proportional_projected*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-use-proportional-projected"),
("bpy.types.view3doverlay.vertex_paint_mode_opacity*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-vertex-paint-mode-opacity"),
+ ("bpy.types.viewlayer.use_pass_cryptomatte_accurate*", "render/layers/passes.html#bpy-types-viewlayer-use-pass-cryptomatte-accurate"),
+ ("bpy.types.viewlayer.use_pass_cryptomatte_material*", "render/layers/passes.html#bpy-types-viewlayer-use-pass-cryptomatte-material"),
("bpy.ops.view3d.edit_mesh_extrude_individual_move*", "modeling/meshes/editing/face/extrude_faces.html#bpy-ops-view3d-edit-mesh-extrude-individual-move"),
("bpy.ops.view3d.edit_mesh_extrude_manifold_normal*", "modeling/meshes/tools/extrude_manifold.html#bpy-ops-view3d-edit-mesh-extrude-manifold-normal"),
("bpy.types.cyclesrendersettings.use_distance_cull*", "render/cycles/render_settings/simplify.html#bpy-types-cyclesrendersettings-use-distance-cull"),
@@ -147,13 +152,14 @@ url_manual_mapping = (
("bpy.types.rendersettings_simplify_gpencil_onplay*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-gpencil-onplay"),
("bpy.types.rigidbodyconstraint.breaking_threshold*", "physics/rigid_body/constraints/introduction.html#bpy-types-rigidbodyconstraint-breaking-threshold"),
("bpy.types.spacedopesheeteditor.show_pose_markers*", "animation/markers.html#bpy-types-spacedopesheeteditor-show-pose-markers"),
+ ("bpy.types.spaceoutliner.use_filter_object_camera*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-object-camera"),
("bpy.types.toolsettings.proportional_edit_falloff*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-proportional-edit-falloff"),
("bpy.types.toolsettings.use_edge_path_live_unwrap*", "modeling/meshes/tools/tool_settings.html#bpy-types-toolsettings-use-edge-path-live-unwrap"),
("bpy.types.toolsettings.use_gpencil_draw_additive*", "grease_pencil/modes/draw/introduction.html#bpy-types-toolsettings-use-gpencil-draw-additive"),
("bpy.types.toolsettings.use_snap_backface_culling*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-backface-culling"),
("bpy.types.toolsettings.use_transform_data_origin*", "scene_layout/object/tools/tool_settings.html#bpy-types-toolsettings-use-transform-data-origin"),
("bpy.types.view3doverlay.sculpt_mode_mask_opacity*", "sculpt_paint/sculpting/editing/mask.html#bpy-types-view3doverlay-sculpt-mode-mask-opacity"),
- ("bpy.ops.outliner.collection_indirect_only_clear*", "render/layers/layers.html#bpy-ops-outliner-collection-indirect-only-clear"),
+ ("bpy.ops.outliner.collection_indirect_only_clear*", "render/layers/introduction.html#bpy-ops-outliner-collection-indirect-only-clear"),
("bpy.types.cyclesrendersettings.max_subdivisions*", "render/cycles/render_settings/subdivision.html#bpy-types-cyclesrendersettings-max-subdivisions"),
("bpy.types.fluiddomainsettings.cache_data_format*", "physics/fluid/type/domain/cache.html#bpy-types-fluiddomainsettings-cache-data-format"),
("bpy.types.fluiddomainsettings.cache_frame_start*", "physics/fluid/type/domain/cache.html#bpy-types-fluiddomainsettings-cache-frame-start"),
@@ -175,7 +181,10 @@ url_manual_mapping = (
("bpy.types.materialgpencilstyle.use_fill_holdout*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-use-fill-holdout"),
("bpy.types.particlesettings.use_parent_particles*", "physics/particles/emitter/render.html#bpy-types-particlesettings-use-parent-particles"),
("bpy.types.rigidbodyconstraint.solver_iterations*", "physics/rigid_body/constraints/introduction.html#bpy-types-rigidbodyconstraint-solver-iterations"),
+ ("bpy.types.spaceoutliner.use_filter_object_empty*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-object-empty"),
+ ("bpy.types.spaceoutliner.use_filter_object_light*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-object-light"),
("bpy.types.toolsettings.gpencil_stroke_placement*", "grease_pencil/modes/draw/stroke_placement.html#bpy-types-toolsettings-gpencil-stroke-placement"),
+ ("bpy.types.viewlayer.use_pass_cryptomatte_object*", "render/layers/passes.html#bpy-types-viewlayer-use-pass-cryptomatte-object"),
("bpy.ops.armature.rigify_apply_selection_colors*", "addons/rigging/rigify/metarigs.html#bpy-ops-armature-rigify-apply-selection-colors"),
("bpy.types.brushgpencilsettings.fill_layer_mode*", "grease_pencil/modes/draw/tools/fill.html#bpy-types-brushgpencilsettings-fill-layer-mode"),
("bpy.types.cyclesrendersettings.use_camera_cull*", "render/cycles/render_settings/simplify.html#bpy-types-cyclesrendersettings-use-camera-cull"),
@@ -186,9 +195,11 @@ url_manual_mapping = (
("bpy.types.movietrackingcamera.distortion_model*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-distortion-model"),
("bpy.types.rendersettings.resolution_percentage*", "render/output/properties/dimensions.html#bpy-types-rendersettings-resolution-percentage"),
("bpy.types.rendersettings_simplify_gpencil_tint*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-gpencil-tint"),
+ ("bpy.types.spaceoutliner.use_filter_object_mesh*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-object-mesh"),
("bpy.types.toolsettings.use_gpencil_draw_onback*", "grease_pencil/modes/draw/introduction.html#bpy-types-toolsettings-use-gpencil-draw-onback"),
("bpy.types.toolsettings.use_snap_align_rotation*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-align-rotation"),
- ("bpy.ops.outliner.collection_indirect_only_set*", "render/layers/layers.html#bpy-ops-outliner-collection-indirect-only-set"),
+ ("bpy.types.viewlayer.use_pass_cryptomatte_asset*", "render/layers/passes.html#bpy-types-viewlayer-use-pass-cryptomatte-asset"),
+ ("bpy.ops.outliner.collection_indirect_only_set*", "render/layers/introduction.html#bpy-ops-outliner-collection-indirect-only-set"),
("bpy.ops.sequencer.deinterlace_selected_movies*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-deinterlace-selected-movies"),
("bpy.types.brush.surface_smooth_current_vertex*", "sculpt_paint/sculpting/tools/smooth.html#bpy-types-brush-surface-smooth-current-vertex"),
("bpy.types.brush.use_multiplane_scrape_dynamic*", "sculpt_paint/sculpting/tools/multiplane_scrape.html#bpy-types-brush-use-multiplane-scrape-dynamic"),
@@ -212,11 +223,14 @@ url_manual_mapping = (
("bpy.types.fluidflowsettings.use_particle_size*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-use-particle-size"),
("bpy.types.linestylegeometrymodifier_blueprint*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/blueprint.html#bpy-types-linestylegeometrymodifier-blueprint"),
("bpy.types.materialgpencilstyle.alignment_mode*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-alignment-mode"),
+ ("bpy.types.particlesettings.use_modifier_stack*", "physics/particles/emitter/emission.html#bpy-types-particlesettings-use-modifier-stack"),
("bpy.types.rendersettings.simplify_subdivision*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-subdivision"),
+ ("bpy.types.spaceoutliner.use_filter_collection*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-collection"),
("bpy.types.spacesequenceeditor.show_region_hud*", "video_editing/sequencer/navigating.html#bpy-types-spacesequenceeditor-show-region-hud"),
("bpy.types.toolsettings.use_snap_grid_absolute*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-grid-absolute"),
("bpy.types.view3doverlay.show_face_orientation*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-face-orientation"),
("bpy.ops.object.blenderkit_material_thumbnail*", "addons/3d_view/blenderkit.html#bpy-ops-object-blenderkit-material-thumbnail"),
+ ("bpy.ops.object.multires_higher_levels_delete*", "modeling/modifiers/generate/multiresolution.html#bpy-ops-object-multires-higher-levels-delete"),
("bpy.ops.object.vertex_group_copy_to_selected*", "modeling/meshes/properties/vertex_groups/vertex_groups.html#bpy-ops-object-vertex-group-copy-to-selected"),
("bpy.ops.outliner.collection_duplicate_linked*", "editors/outliner/editing.html#bpy-ops-outliner-collection-duplicate-linked"),
("bpy.ops.view3d.edit_mesh_extrude_move_normal*", "modeling/meshes/editing/face/extrude_faces.html#bpy-ops-view3d-edit-mesh-extrude-move-normal"),
@@ -241,6 +255,7 @@ url_manual_mapping = (
("bpy.types.gpencilsculptguide.reference_point*", "grease_pencil/modes/draw/guides.html#bpy-types-gpencilsculptguide-reference-point"),
("bpy.types.linestylegeometrymodifier_2doffset*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/2d_offset.html#bpy-types-linestylegeometrymodifier-2doffset"),
("bpy.types.linestylegeometrymodifier_sampling*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/sampling.html#bpy-types-linestylegeometrymodifier-sampling"),
+ ("bpy.types.spaceoutliner.show_restrict_column*", "editors/outliner/interface.html#bpy-types-spaceoutliner-show-restrict-column"),
("bpy.types.toolsettings.transform_pivot_point*", "editors/3dview/controls/pivot_point/index.html#bpy-types-toolsettings-transform-pivot-point"),
("bpy.types.toolsettings.use_proportional_edit*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-use-proportional-edit"),
("bpy.types.volumedisplay.interpolation_method*", "modeling/volumes/properties.html#bpy-types-volumedisplay-interpolation-method"),
@@ -257,10 +272,14 @@ url_manual_mapping = (
("bpy.types.fluidflowsettings.particle_system*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-particle-system"),
("bpy.types.fluidflowsettings.velocity_factor*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-factor"),
("bpy.types.fluidflowsettings.velocity_normal*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-normal"),
+ ("bpy.types.geometrynodealignrotationtovector*", "modeling/geometry_nodes/point/align_rotation_to_vector.html#bpy-types-geometrynodealignrotationtovector"),
("bpy.types.materialgpencilstyle.stroke_style*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-stroke-style"),
("bpy.types.rendersettings.use_crop_to_border*", "render/output/properties/dimensions.html#bpy-types-rendersettings-use-crop-to-border"),
("bpy.types.rendersettings.use_file_extension*", "render/output/properties/output.html#bpy-types-rendersettings-use-file-extension"),
("bpy.types.sculpt.constant_detail_resolution*", "sculpt_paint/sculpting/tool_settings/dyntopo.html#bpy-types-sculpt-constant-detail-resolution"),
+ ("bpy.types.spaceclipeditor.annotation_source*", "movie_clip/tracking/clip/sidebar/annotation.html#bpy-types-spaceclipeditor-annotation-source"),
+ ("bpy.types.spaceoutliner.use_filter_children*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-children"),
+ ("bpy.types.spaceoutliner.use_filter_complete*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-complete"),
("bpy.types.spaceview3d.transform_orientation*", "editors/3dview/controls/orientation.html#bpy-types-spaceview3d-transform-orientation"),
("bpy.types.spaceview3d.use_local_collections*", "editors/3dview/sidebar.html#bpy-types-spaceview3d-use-local-collections"),
("bpy.types.toolsettings.use_snap_peel_object*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-peel-object"),
@@ -296,12 +315,13 @@ url_manual_mapping = (
("bpy.types.spaceuveditor.sticky_select_mode*", "editors/uv/selecting.html#bpy-types-spaceuveditor-sticky-select-mode"),
("bpy.types.spaceview3d.show_object_viewport*", "editors/3dview/display/visibility.html#bpy-types-spaceview3d-show-object-viewport"),
("bpy.types.view3doverlay.show_fade_inactive*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-fade-inactive"),
+ ("bpy.types.viewlayer.pass_cryptomatte_depth*", "render/layers/passes.html#bpy-types-viewlayer-pass-cryptomatte-depth"),
("bpy.ops.constraint.disable_keep_transform*", "animation/constraints/interface/common.html#bpy-ops-constraint-disable-keep-transform"),
("bpy.ops.object.vertex_group_normalize_all*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-normalize-all"),
("bpy.ops.outliner.collection_color_tag_set*", "editors/outliner/editing.html#bpy-ops-outliner-collection-color-tag-set"),
("bpy.ops.outliner.collection_enable_render*", "editors/outliner/editing.html#bpy-ops-outliner-collection-enable-render"),
("bpy.ops.outliner.collection_exclude_clear*", "editors/outliner/editing.html#bpy-ops-outliner-collection-exclude-clear"),
- ("bpy.ops.outliner.collection_holdout_clear*", "render/layers/layers.html#bpy-ops-outliner-collection-holdout-clear"),
+ ("bpy.ops.outliner.collection_holdout_clear*", "render/layers/introduction.html#bpy-ops-outliner-collection-holdout-clear"),
("bpy.ops.sculpt.face_set_change_visibility*", "sculpt_paint/sculpting/editing/face_sets.html#bpy-ops-sculpt-face-set-change-visibility"),
("bpy.ops.sculpt.face_sets_randomize_colors*", "sculpt_paint/sculpting/editing/face_sets.html#bpy-ops-sculpt-face-sets-randomize-colors"),
("bpy.types.brush.disconnected_distance_max*", "sculpt_paint/sculpting/tools/pose.html#bpy-types-brush-disconnected-distance-max"),
@@ -316,6 +336,7 @@ url_manual_mapping = (
("bpy.types.fluideffectorsettings.subframes*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings-subframes"),
("bpy.types.fluidflowsettings.flow_behavior*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-flow-behavior"),
("bpy.types.fluidflowsettings.noise_texture*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-noise-texture"),
+ ("bpy.types.geometrynodeattributevectormath*", "modeling/geometry_nodes/attribute/attribute_vector_math.html#bpy-types-geometrynodeattributevectormath"),
("bpy.types.gpencillayer.use_onion_skinning*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-use-onion-skinning"),
("bpy.types.gpencilsculptguide.use_snapping*", "grease_pencil/modes/draw/guides.html#bpy-types-gpencilsculptguide-use-snapping"),
("bpy.types.gpencilsculptsettings.lock_axis*", "grease_pencil/modes/draw/drawing_planes.html#bpy-types-gpencilsculptsettings-lock-axis"),
@@ -328,19 +349,23 @@ url_manual_mapping = (
("bpy.types.rendersettings.dither_intensity*", "render/output/properties/post_processing.html#bpy-types-rendersettings-dither-intensity"),
("bpy.types.rendersettings.simplify_volumes*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-volumes"),
("bpy.types.rendersettings.use_render_cache*", "render/output/properties/output.html#bpy-types-rendersettings-use-render-cache"),
+ ("bpy.types.rendersettings.use_single_layer*", "render/layers/view_layer.html#bpy-types-rendersettings-use-single-layer"),
("bpy.types.rendersettings_simplify_gpencil*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-gpencil"),
("bpy.types.sceneeevee.use_taa_reprojection*", "render/eevee/render_settings/sampling.html#bpy-types-sceneeevee-use-taa-reprojection"),
("bpy.types.sequenceeditor.use_overlay_lock*", "video_editing/preview/sidebar.html#bpy-types-sequenceeditor-use-overlay-lock"),
+ ("bpy.types.spaceoutliner.use_filter_object*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-filter-object"),
("bpy.types.spaceuveditor.show_pixel_coords*", "editors/uv/sidebar.html#bpy-types-spaceuveditor-show-pixel-coords"),
("bpy.types.spaceview3d.show_reconstruction*", "editors/3dview/display/overlays.html#bpy-types-spaceview3d-show-reconstruction"),
("bpy.types.toolsettings.gpencil_selectmode*", "grease_pencil/selecting.html#bpy-types-toolsettings-gpencil-selectmode"),
("bpy.types.toolsettings.use_auto_normalize*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-auto-normalize"),
("bpy.types.toolsettings.use_snap_translate*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-translate"),
("bpy.types.toolsettings.use_uv_select_sync*", "editors/uv/selecting.html#bpy-types-toolsettings-use-uv-select-sync"),
+ ("bpy.types.view3doverlay.wireframe_opacity*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-wireframe-opacity"),
("bpy.ops.gpencil.active_frames_delete_all*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-active-frames-delete-all"),
("bpy.ops.gpencil.stroke_merge_by_distance*", "grease_pencil/modes/edit/grease_pencil_menu.html#bpy-ops-gpencil-stroke-merge-by-distance"),
("bpy.ops.object.anim_transforms_to_deltas*", "scene_layout/object/editing/apply.html#bpy-ops-object-anim-transforms-to-deltas"),
("bpy.ops.object.convert_proxy_to_override*", "files/linked_libraries/library_overrides.html#bpy-ops-object-convert-proxy-to-override"),
+ ("bpy.ops.object.modifier_copy_to_selected*", "modeling/modifiers/introduction.html#bpy-ops-object-modifier-copy-to-selected"),
("bpy.ops.preferences.app_template_install*", "advanced/app_templates.html#bpy-ops-preferences-app-template-install"),
("bpy.types.actionposemarkers.active_index*", "animation/armatures/properties/pose_library.html#bpy-types-actionposemarkers-active-index"),
("bpy.types.brush.cloth_force_falloff_type*", "sculpt_paint/sculpting/tools/cloth.html#bpy-types-brush-cloth-force-falloff-type"),
@@ -359,8 +384,9 @@ url_manual_mapping = (
("bpy.types.fluiddomainsettings.time_scale*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-time-scale"),
("bpy.types.fluidflowsettings.texture_size*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-texture-size"),
("bpy.types.fluidflowsettings.use_absolute*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-use-absolute"),
- ("bpy.types.geometrynodeattributerandomize*", "modeling/modifiers/nodes/attribute/attribute_randomize.html#bpy-types-geometrynodeattributerandomize"),
- ("bpy.types.geometrynodesubdivisionsurface*", "modeling/modifiers/nodes/mesh/subdivision_surface.html#bpy-types-geometrynodesubdivisionsurface"),
+ ("bpy.types.geometrynodeattributecolorramp*", "modeling/geometry_nodes/attribute/attribute_color_ramp.html#bpy-types-geometrynodeattributecolorramp"),
+ ("bpy.types.geometrynodeattributerandomize*", "modeling/geometry_nodes/attribute/attribute_randomize.html#bpy-types-geometrynodeattributerandomize"),
+ ("bpy.types.geometrynodesubdivisionsurface*", "modeling/geometry_nodes/mesh/subdivision_surface.html#bpy-types-geometrynodesubdivisionsurface"),
("bpy.types.imageformatsettings.color_mode*", "render/output/properties/output.html#bpy-types-imageformatsettings-color-mode"),
("bpy.types.linestyle*modifier_alongstroke*", "render/freestyle/parameter_editor/line_style/modifiers/color/along_stroke.html#bpy-types-linestyle-modifier-alongstroke"),
("bpy.types.linestyle*modifier_creaseangle*", "render/freestyle/parameter_editor/line_style/modifiers/color/crease_angle.html#bpy-types-linestyle-modifier-creaseangle"),
@@ -375,6 +401,7 @@ url_manual_mapping = (
("bpy.types.rendersettings.use_placeholder*", "render/output/properties/output.html#bpy-types-rendersettings-use-placeholder"),
("bpy.types.shadernodesubsurfacescattering*", "render/shader_nodes/shader/sss.html#bpy-types-shadernodesubsurfacescattering"),
("bpy.types.spacedopesheeteditor.auto_snap*", "editors/dope_sheet/editing.html#bpy-types-spacedopesheeteditor-auto-snap"),
+ ("bpy.types.spaceoutliner.show_mode_column*", "editors/outliner/interface.html#bpy-types-spaceoutliner-show-mode-column"),
("bpy.types.spacetexteditor.use_match_case*", "editors/text_editor.html#bpy-types-spacetexteditor-use-match-case"),
("bpy.types.spaceview3d.show_object_select*", "editors/3dview/display/visibility.html#bpy-types-spaceview3d-show-object-select"),
("bpy.types.toolsettings.use_lock_relative*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-lock-relative"),
@@ -386,9 +413,10 @@ url_manual_mapping = (
("bpy.ops.object.vertex_group_remove_from*", "modeling/meshes/properties/vertex_groups/vertex_groups.html#bpy-ops-object-vertex-group-remove-from"),
("bpy.ops.outliner.collection_exclude_set*", "editors/outliner/editing.html#bpy-ops-outliner-collection-exclude-set"),
("bpy.ops.outliner.collection_hide_inside*", "editors/outliner/editing.html#bpy-ops-outliner-collection-hide-inside"),
- ("bpy.ops.outliner.collection_holdout_set*", "render/layers/layers.html#bpy-ops-outliner-collection-holdout-set"),
+ ("bpy.ops.outliner.collection_holdout_set*", "render/layers/introduction.html#bpy-ops-outliner-collection-holdout-set"),
("bpy.ops.outliner.collection_show_inside*", "editors/outliner/editing.html#bpy-ops-outliner-collection-show-inside"),
("bpy.ops.preferences.reset_default_theme*", "editors/preferences/themes.html#bpy-ops-preferences-reset-default-theme"),
+ ("bpy.ops.sequencer.strip_transform_clear*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-strip-transform-clear"),
("bpy.types.animdata.action_extrapolation*", "editors/nla/sidebar.html#bpy-types-animdata-action-extrapolation"),
("bpy.types.brush.multiplane_scrape_angle*", "sculpt_paint/sculpting/tools/multiplane_scrape.html#bpy-types-brush-multiplane-scrape-angle"),
("bpy.types.clothsettings.internal_spring*", "physics/cloth/settings/physical_properties.html#bpy-types-clothsettings-internal-spring"),
@@ -414,6 +442,8 @@ url_manual_mapping = (
("bpy.types.rendersettings.pixel_aspect_y*", "render/output/properties/dimensions.html#bpy-types-rendersettings-pixel-aspect-y"),
("bpy.types.rigidbodyconstraint.use_limit*", "physics/rigid_body/constraints/introduction.html#bpy-types-rigidbodyconstraint-use-limit"),
("bpy.types.sceneeevee.taa_render_samples*", "render/eevee/render_settings/sampling.html#bpy-types-sceneeevee-taa-render-samples"),
+ ("bpy.types.spaceoutliner.use_sync_select*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-sync-select"),
+ ("bpy.types.spaceproperties.outliner_sync*", "editors/properties_editor.html#bpy-types-spaceproperties-outliner-sync"),
("bpy.types.spaceproperties.search_filter*", "editors/properties_editor.html#bpy-types-spaceproperties-search-filter"),
("bpy.types.spacetexteditor.margin_column*", "editors/text_editor.html#bpy-types-spacetexteditor-margin-column"),
("bpy.types.spacetexteditor.use_find_wrap*", "editors/text_editor.html#bpy-types-spacetexteditor-use-find-wrap"),
@@ -425,17 +455,20 @@ url_manual_mapping = (
("bpy.types.vertexweightproximitymodifier*", "modeling/modifiers/modify/weight_proximity.html#bpy-types-vertexweightproximitymodifier"),
("bpy.types.view3doverlay.show_wireframes*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-wireframes"),
("bpy.ops.mesh.vertices_smooth_laplacian*", "modeling/meshes/editing/vertex/laplacian_smooth.html#bpy-ops-mesh-vertices-smooth-laplacian"),
+ ("bpy.ops.object.multires_rebuild_subdiv*", "modeling/modifiers/generate/multiresolution.html#bpy-ops-object-multires-rebuild-subdiv"),
+ ("bpy.ops.sequencer.select_side_of_frame*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-side-of-frame"),
("bpy.ops.view3d.blenderkit_set_category*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-set-category"),
("bpy.types.armature.rigify_colors_index*", "addons/rigging/rigify/metarigs.html#bpy-types-armature-rigify-colors-index"),
("bpy.types.armature.rigify_theme_to_add*", "addons/rigging/rigify/metarigs.html#bpy-types-armature-rigify-theme-to-add"),
("bpy.types.brush.pose_smooth_iterations*", "sculpt_paint/sculpting/tools/pose.html#bpy-types-brush-pose-smooth-iterations"),
+ ("bpy.types.brush.snake_hook_deform_type*", "sculpt_paint/sculpting/tools/snake_hook.html#bpy-types-brush-snake-hook-deform-type"),
("bpy.types.brush.use_grab_active_vertex*", "sculpt_paint/sculpting/tools/grab.html#bpy-types-brush-use-grab-active-vertex"),
("bpy.types.brush.use_pose_lock_rotation*", "sculpt_paint/sculpting/tools/pose.html#bpy-types-brush-use-pose-lock-rotation"),
("bpy.types.compositornodebrightcontrast*", "compositing/types/color/bright_contrast.html#bpy-types-compositornodebrightcontrast"),
("bpy.types.compositornodedoubleedgemask*", "compositing/types/matte/double_edge_mask.html#bpy-types-compositornodedoubleedgemask"),
("bpy.types.fluiddomainsettings.clipping*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-clipping"),
("bpy.types.fluiddomainsettings.use_mesh*", "physics/fluid/type/domain/liquid/mesh.html#bpy-types-fluiddomainsettings-use-mesh"),
- ("bpy.types.geometrynodeattributecompare*", "modeling/modifiers/nodes/attribute/attribute_compare.html#bpy-types-geometrynodeattributecompare"),
+ ("bpy.types.geometrynodeattributecompare*", "modeling/geometry_nodes/attribute/attribute_compare.html#bpy-types-geometrynodeattributecompare"),
("bpy.types.material.preview_render_type*", "render/materials/preview.html#bpy-types-material-preview-render-type"),
("bpy.types.materialgpencilstyle.pattern*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-pattern"),
("bpy.types.materialgpencilstyle.texture*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-texture"),
@@ -449,6 +482,7 @@ url_manual_mapping = (
("bpy.types.shadernodevectordisplacement*", "render/shader_nodes/vector/vector_displacement.html#bpy-types-shadernodevectordisplacement"),
("bpy.types.spacegrapheditor.show_cursor*", "editors/graph_editor/introduction.html#bpy-types-spacegrapheditor-show-cursor"),
("bpy.types.spaceimageeditor.show_repeat*", "editors/image/sidebar.html#bpy-types-spaceimageeditor-show-repeat"),
+ ("bpy.types.spaceoutliner.use_sort_alpha*", "editors/outliner/interface.html#bpy-types-spaceoutliner-use-sort-alpha"),
("bpy.types.spacepreferences.filter_text*", "editors/preferences/keymap.html#bpy-types-spacepreferences-filter-text"),
("bpy.types.spacepreferences.filter_type*", "editors/preferences/keymap.html#bpy-types-spacepreferences-filter-type"),
("bpy.types.spacetexteditor.replace_text*", "editors/text_editor.html#bpy-types-spacetexteditor-replace-text"),
@@ -460,10 +494,12 @@ url_manual_mapping = (
("bpy.ops.gpencil.stroke_simplify_fixed*", "grease_pencil/modes/edit/stroke_menu.html#bpy-ops-gpencil-stroke-simplify-fixed"),
("bpy.ops.mesh.faces_select_linked_flat*", "modeling/meshes/selecting/linked.html#bpy-ops-mesh-faces-select-linked-flat"),
("bpy.ops.object.gpencil_modifier_apply*", "grease_pencil/modifiers/introduction.html#bpy-ops-object-gpencil-modifier-apply"),
+ ("bpy.ops.object.multires_external_save*", "modeling/modifiers/generate/multiresolution.html#bpy-ops-object-multires-external-save"),
("bpy.ops.object.vertex_group_normalize*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-normalize"),
("bpy.ops.object.visual_transform_apply*", "scene_layout/object/editing/apply.html#bpy-ops-object-visual-transform-apply"),
("bpy.ops.outliner.collection_duplicate*", "editors/outliner/editing.html#bpy-ops-outliner-collection-duplicate"),
("bpy.ops.sequencer.change_effect_input*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-change-effect-input"),
+ ("bpy.ops.sequencer.strip_transform_fit*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-strip-transform-fit"),
("bpy.types.armature.rigify_colors_lock*", "addons/rigging/rigify/metarigs.html#bpy-types-armature-rigify-colors-lock"),
("bpy.types.brush.boundary_falloff_type*", "sculpt_paint/sculpting/tools/boundary.html#bpy-types-brush-boundary-falloff-type"),
("bpy.types.brush.texture_overlay_alpha*", "sculpt_paint/brush/cursor.html#bpy-types-brush-texture-overlay-alpha"),
@@ -475,7 +511,7 @@ url_manual_mapping = (
("bpy.types.fluiddomainsettings.gravity*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-gravity"),
("bpy.types.fluidflowsettings.flow_type*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-flow-type"),
("bpy.types.fluidflowsettings.subframes*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-subframes"),
- ("bpy.types.geometrynodepointdistribute*", "modeling/modifiers/nodes/point/point_distribute.html#bpy-types-geometrynodepointdistribute"),
+ ("bpy.types.geometrynodepointdistribute*", "modeling/geometry_nodes/point/point_distribute.html#bpy-types-geometrynodepointdistribute"),
("bpy.types.imagepaint.screen_grab_size*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-types-imagepaint-screen-grab-size"),
("bpy.types.linestyle*modifier_material*", "render/freestyle/parameter_editor/line_style/modifiers/color/material.html#bpy-types-linestyle-modifier-material"),
("bpy.types.movietrackingcamera.brown_k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-brown-k"),
@@ -492,12 +528,13 @@ url_manual_mapping = (
("bpy.types.sculpt.detail_refine_method*", "sculpt_paint/sculpting/tool_settings/dyntopo.html#bpy-types-sculpt-detail-refine-method"),
("bpy.types.sculpt.symmetrize_direction*", "sculpt_paint/sculpting/tool_settings/symmetry.html#bpy-types-sculpt-symmetrize-direction"),
("bpy.types.sequenceeditor.show_overlay*", "video_editing/preview/sidebar.html#bpy-types-sequenceeditor-show-overlay"),
+ ("bpy.types.spaceoutliner.filter_invert*", "editors/outliner/interface.html#bpy-types-spaceoutliner-filter-invert"),
("bpy.types.spacetexteditor.show_margin*", "editors/text_editor.html#bpy-types-spacetexteditor-show-margin"),
("bpy.types.spline.radius_interpolation*", "modeling/curves/properties/active_spline.html#bpy-types-spline-radius-interpolation"),
("bpy.types.toolsettings.use_multipaint*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-multipaint"),
("bpy.types.toolsettings.use_snap_scale*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-scale"),
("bpy.types.toolsettings.uv_select_mode*", "editors/uv/selecting.html#bpy-types-toolsettings-uv-select-mode"),
- ("bpy.types.viewlayer.material_override*", "render/layers/layers.html#bpy-types-viewlayer-material-override"),
+ ("bpy.types.viewlayer.material_override*", "render/layers/introduction.html#bpy-types-viewlayer-material-override"),
("bpy.ops.gpencil.interpolate_sequence*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-interpolate-sequence"),
("bpy.ops.mesh.normals_make_consistent*", "modeling/meshes/editing/mesh/normals.html#bpy-ops-mesh-normals-make-consistent"),
("bpy.ops.mesh.offset_edge_loops_slide*", "modeling/meshes/editing/edge/offset_edge_slide.html#bpy-ops-mesh-offset-edge-loops-slide"),
@@ -522,6 +559,7 @@ url_manual_mapping = (
("bpy.types.dynamicpaintcanvassettings*", "physics/dynamic_paint/canvas.html#bpy-types-dynamicpaintcanvassettings"),
("bpy.types.fluidflowsettings.use_flow*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-use-flow"),
("bpy.types.fmodifierfunctiongenerator*", "editors/graph_editor/fcurves/sidebar/modifiers.html#bpy-types-fmodifierfunctiongenerator"),
+ ("bpy.types.geometrynodepointtranslate*", "modeling/geometry_nodes/point/point_translate.html#bpy-types-geometrynodepointtranslate"),
("bpy.types.gpencillayer.use_solo_mode*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-use-solo-mode"),
("bpy.types.greasepencil.use_multiedit*", "grease_pencil/multiframe.html#bpy-types-greasepencil-use-multiedit"),
("bpy.types.materialgpencilstyle.color*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-color"),
@@ -531,11 +569,15 @@ url_manual_mapping = (
("bpy.types.regionview3d.lock_rotation*", "editors/3dview/navigate/views.html#bpy-types-regionview3d-lock-rotation"),
("bpy.types.scene.audio_distance_model*", "scene_layout/scene/properties.html#bpy-types-scene-audio-distance-model"),
("bpy.types.scene.audio_doppler_factor*", "scene_layout/scene/properties.html#bpy-types-scene-audio-doppler-factor"),
+ ("bpy.types.sequencetransform.rotation*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sequencetransform-rotation"),
("bpy.types.shadernodeambientocclusion*", "render/shader_nodes/input/ao.html#bpy-types-shadernodeambientocclusion"),
("bpy.types.shadernodevolumeabsorption*", "render/shader_nodes/shader/volume_absorption.html#bpy-types-shadernodevolumeabsorption"),
("bpy.types.shadernodevolumeprincipled*", "render/shader_nodes/shader/volume_principled.html#bpy-types-shadernodevolumeprincipled"),
+ ("bpy.types.spaceoutliner.filter_state*", "editors/outliner/interface.html#bpy-types-spaceoutliner-filter-state"),
("bpy.types.toolsettings.snap_elements*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-snap-elements"),
("bpy.types.toolsettings.use_snap_self*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-self"),
+ ("bpy.types.viewlayer.active_aov_index*", "render/layers/passes.html#bpy-types-viewlayer-active-aov-index"),
+ ("bpy.ops.gpencil.bake_mesh_animation*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-bake-mesh-animation"),
("bpy.ops.gpencil.interpolate_reverse*", "grease_pencil/animation/interpolation.html#bpy-ops-gpencil-interpolate-reverse"),
("bpy.ops.gpencil.select_vertex_color*", "grease_pencil/selecting.html#bpy-ops-gpencil-select-vertex-color"),
("bpy.ops.gpencil.set_active_material*", "grease_pencil/modes/edit/stroke_menu.html#bpy-ops-gpencil-set-active-material"),
@@ -545,6 +587,7 @@ url_manual_mapping = (
("bpy.ops.mesh.shape_propagate_to_all*", "modeling/meshes/editing/vertex/propagate_shapes.html#bpy-ops-mesh-shape-propagate-to-all"),
("bpy.ops.mesh.vert_connect_nonplanar*", "modeling/meshes/editing/mesh/cleanup.html#bpy-ops-mesh-vert-connect-nonplanar"),
("bpy.ops.object.duplicates_make_real*", "scene_layout/object/editing/apply.html#bpy-ops-object-duplicates-make-real"),
+ ("bpy.ops.object.multires_unsubdivide*", "modeling/modifiers/generate/multiresolution.html#bpy-ops-object-multires-unsubdivide"),
("bpy.ops.object.transforms_to_deltas*", "scene_layout/object/editing/apply.html#bpy-ops-object-transforms-to-deltas"),
("bpy.ops.outliner.collection_disable*", "editors/outliner/editing.html#bpy-ops-outliner-collection-disable"),
("bpy.ops.outliner.collection_isolate*", "editors/outliner/editing.html#bpy-ops-outliner-collection-isolate"),
@@ -556,6 +599,7 @@ url_manual_mapping = (
("bpy.types.brush.crease_pinch_factor*", "sculpt_paint/sculpting/tools/snake_hook.html#bpy-types-brush-crease-pinch-factor"),
("bpy.types.brush.elastic_deform_type*", "sculpt_paint/sculpting/tools/elastic_deform.html#bpy-types-brush-elastic-deform-type"),
("bpy.types.brush.use_cloth_collision*", "sculpt_paint/sculpting/tools/cloth.html#bpy-types-brush-use-cloth-collision"),
+ ("bpy.types.brush.use_grab_silhouette*", "sculpt_paint/sculpting/tools/grab.html#bpy-types-brush-use-grab-silhouette"),
("bpy.types.brush.use_primary_overlay*", "sculpt_paint/brush/cursor.html#bpy-types-brush-use-primary-overlay"),
("bpy.types.camera.passepartout_alpha*", "render/cameras.html#bpy-types-camera-passepartout-alpha"),
("bpy.types.compositornodechromamatte*", "compositing/types/matte/chroma_key.html#bpy-types-compositornodechromamatte"),
@@ -566,10 +610,10 @@ url_manual_mapping = (
("bpy.types.dynamicpaintbrushsettings*", "physics/dynamic_paint/brush.html#bpy-types-dynamicpaintbrushsettings"),
("bpy.types.fluiddomainsettings.alpha*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-alpha"),
("bpy.types.fluidflowsettings.density*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-density"),
- ("bpy.types.geometrynodeattributefill*", "modeling/modifiers/nodes/attribute/attribute_fill.html#bpy-types-geometrynodeattributefill"),
- ("bpy.types.geometrynodeattributemath*", "modeling/modifiers/nodes/attribute/attribute_math.html#bpy-types-geometrynodeattributemath"),
- ("bpy.types.geometrynodepointinstance*", "modeling/modifiers/nodes/point/point_instance.html#bpy-types-geometrynodepointinstance"),
- ("bpy.types.geometrynodepointseparate*", "modeling/modifiers/nodes/point/point_separate.html#bpy-types-geometrynodepointseparate"),
+ ("bpy.types.geometrynodeattributefill*", "modeling/geometry_nodes/attribute/attribute_fill.html#bpy-types-geometrynodeattributefill"),
+ ("bpy.types.geometrynodeattributemath*", "modeling/geometry_nodes/attribute/attribute_math.html#bpy-types-geometrynodeattributemath"),
+ ("bpy.types.geometrynodepointinstance*", "modeling/geometry_nodes/point/point_instance.html#bpy-types-geometrynodepointinstance"),
+ ("bpy.types.geometrynodepointseparate*", "modeling/geometry_nodes/point/point_separate.html#bpy-types-geometrynodepointseparate"),
("bpy.types.light.use_custom_distance*", "render/eevee/lighting.html#bpy-types-light-use-custom-distance"),
("bpy.types.materialgpencilstyle.flip*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-flip"),
("bpy.types.materialgpencilstyle.mode*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-mode"),
@@ -582,10 +626,12 @@ url_manual_mapping = (
("bpy.types.sceneeevee.bokeh_max_size*", "render/eevee/render_settings/depth_of_field.html#bpy-types-sceneeevee-bokeh-max-size"),
("bpy.types.sculpt.detail_type_method*", "sculpt_paint/sculpting/tool_settings/dyntopo.html#bpy-types-sculpt-detail-type-method"),
("bpy.types.sculpt.use_smooth_shading*", "sculpt_paint/sculpting/tool_settings/dyntopo.html#bpy-types-sculpt-use-smooth-shading"),
+ ("bpy.types.sequenceeditor.show_cache*", "video_editing/sequencer/navigating.html#bpy-types-sequenceeditor-show-cache"),
("bpy.types.shadernodebsdfanisotropic*", "render/shader_nodes/shader/anisotropic.html#bpy-types-shadernodebsdfanisotropic"),
("bpy.types.shadernodebsdftranslucent*", "render/shader_nodes/shader/translucent.html#bpy-types-shadernodebsdftranslucent"),
("bpy.types.shadernodebsdftransparent*", "render/shader_nodes/shader/transparent.html#bpy-types-shadernodebsdftransparent"),
("bpy.types.shadernodevectortransform*", "render/shader_nodes/vector/transform.html#bpy-types-shadernodevectortransform"),
+ ("bpy.types.spaceoutliner.filter_text*", "editors/outliner/interface.html#bpy-types-spaceoutliner-filter-text"),
("bpy.types.spacetexteditor.find_text*", "editors/text_editor.html#bpy-types-spacetexteditor-find-text"),
("bpy.types.spacetexteditor.font_size*", "editors/text_editor.html#bpy-types-spacetexteditor-font-size"),
("bpy.types.spacetexteditor.tab_width*", "editors/text_editor.html#bpy-types-spacetexteditor-tab-width"),
@@ -602,6 +648,7 @@ url_manual_mapping = (
("bpy.ops.mesh.tris_convert_to_quads*", "modeling/meshes/editing/face/triangles_quads.html#bpy-ops-mesh-tris-convert-to-quads"),
("bpy.ops.node.read_fullsamplelayers*", "interface/controls/nodes/editing.html#bpy-ops-node-read-fullsamplelayers"),
("bpy.ops.object.datalayout_transfer*", "scene_layout/object/editing/relations/transfer_mesh_data_layout.html#bpy-ops-object-datalayout-transfer"),
+ ("bpy.ops.object.multires_base_apply*", "modeling/modifiers/generate/multiresolution.html#bpy-ops-object-multires-base-apply"),
("bpy.ops.object.randomize_transform*", "scene_layout/object/editing/transform/randomize.html#bpy-ops-object-randomize-transform"),
("bpy.ops.object.vertex_group_invert*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-invert"),
("bpy.ops.object.vertex_group_levels*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-levels"),
@@ -633,14 +680,16 @@ url_manual_mapping = (
("bpy.types.cyclesvisibilitysettings*", "render/cycles/object_settings/object_data.html#bpy-types-cyclesvisibilitysettings"),
("bpy.types.fluiddomainsettings.beta*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-beta"),
("bpy.types.fluidmodifier.fluid_type*", "physics/fluid/type/index.html#bpy-types-fluidmodifier-fluid-type"),
- ("bpy.types.functionnodefloatcompare*", "modeling/modifiers/nodes/utilities/float_compare.html#bpy-types-functionnodefloatcompare"),
- ("bpy.types.geometrynodejoingeometry*", "modeling/modifiers/nodes/geometry/join_geometry.html#bpy-types-geometrynodejoingeometry"),
+ ("bpy.types.functionnodefloatcompare*", "modeling/geometry_nodes/utilities/float_compare.html#bpy-types-functionnodefloatcompare"),
+ ("bpy.types.geometrynodeattributemix*", "modeling/geometry_nodes/attribute/attribute_mix.html#bpy-types-geometrynodeattributemix"),
+ ("bpy.types.geometrynodejoingeometry*", "modeling/geometry_nodes/geometry/join_geometry.html#bpy-types-geometrynodejoingeometry"),
("bpy.types.image.use_half_precision*", "editors/image/image_settings.html#bpy-types-image-use-half-precision"),
("bpy.types.imagepaint.interpolation*", "sculpt_paint/texture_paint/tool_settings/texture_slots.html#bpy-types-imagepaint-interpolation"),
("bpy.types.linestyle*modifier_noise*", "render/freestyle/parameter_editor/line_style/modifiers/color/noise.html#bpy-types-linestyle-modifier-noise"),
("bpy.types.maintainvolumeconstraint*", "animation/constraints/transform/maintain_volume.html#bpy-types-maintainvolumeconstraint"),
("bpy.types.mesh.use_mirror_topology*", "modeling/meshes/tools/tool_settings.html#bpy-types-mesh-use-mirror-topology"),
("bpy.types.particleinstancemodifier*", "modeling/modifiers/physics/particle_instance.html#bpy-types-particleinstancemodifier"),
+ ("bpy.types.sequencetransform.offset*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sequencetransform-offset"),
("bpy.types.shadernodebrightcontrast*", "render/shader_nodes/color/bright_contrast.html#bpy-types-shadernodebrightcontrast"),
("bpy.types.shadernodebsdfprincipled*", "render/shader_nodes/shader/principled.html#bpy-types-shadernodebsdfprincipled"),
("bpy.types.shadernodebsdfrefraction*", "render/shader_nodes/shader/refraction.html#bpy-types-shadernodebsdfrefraction"),
@@ -661,12 +710,16 @@ url_manual_mapping = (
("bpy.ops.mesh.select_face_by_sides*", "modeling/meshes/selecting/all_by_trait.html#bpy-ops-mesh-select-face-by-sides"),
("bpy.ops.mesh.shortest_path_select*", "modeling/meshes/selecting/linked.html#bpy-ops-mesh-shortest-path-select"),
("bpy.ops.mesh.vert_connect_concave*", "modeling/meshes/editing/mesh/cleanup.html#bpy-ops-mesh-vert-connect-concave"),
+ ("bpy.ops.object.multires_subdivide*", "modeling/modifiers/generate/multiresolution.html#bpy-ops-object-multires-subdivide"),
("bpy.ops.object.vertex_group_clean*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-clean"),
("bpy.ops.preferences.theme_install*", "editors/preferences/themes.html#bpy-ops-preferences-theme-install"),
("bpy.ops.render.play-rendered-anim*", "render/output/animation_player.html#bpy-ops-render-play-rendered-anim"),
("bpy.ops.scene.blenderkit_download*", "addons/3d_view/blenderkit.html#bpy-ops-scene-blenderkit-download"),
("bpy.ops.sculpt.set_pivot_position*", "sculpt_paint/sculpting/editing/sculpt.html#bpy-ops-sculpt-set-pivot-position"),
+ ("bpy.ops.sequencer.image_strip_add*", "video_editing/sequencer/strips/movie_image.html#bpy-ops-sequencer-image-strip-add"),
+ ("bpy.ops.sequencer.movie_strip_add*", "video_editing/sequencer/strips/movie_image.html#bpy-ops-sequencer-movie-strip-add"),
("bpy.ops.sequencer.reassign_inputs*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-reassign-inputs"),
+ ("bpy.ops.sequencer.sound_strip_add*", "video_editing/sequencer/strips/sound.html#bpy-ops-sequencer-sound-strip-add"),
("bpy.ops.view3d.view_center_camera*", "editors/3dview/navigate/camera_view.html#bpy-ops-view3d-view-center-camera"),
("bpy.types.armaturegpencilmodifier*", "grease_pencil/modifiers/deform/armature.html#bpy-types-armaturegpencilmodifier"),
("bpy.types.brush.cloth_deform_type*", "sculpt_paint/sculpting/tools/cloth.html#bpy-types-brush-cloth-deform-type"),
@@ -688,8 +741,11 @@ url_manual_mapping = (
("bpy.types.constraint.target_space*", "animation/constraints/interface/common.html#bpy-types-constraint-target-space"),
("bpy.types.curve.use_deform_bounds*", "modeling/curves/properties/shape.html#bpy-types-curve-use-deform-bounds"),
("bpy.types.freestylemodulesettings*", "render/freestyle/python.html#bpy-types-freestylemodulesettings"),
- ("bpy.types.functionnodebooleanmath*", "modeling/modifiers/nodes/utilities/boolean_math.html#bpy-types-functionnodebooleanmath"),
- ("bpy.types.geometrynodetriangulate*", "modeling/modifiers/nodes/mesh/triangulate.html#bpy-types-geometrynodetriangulate"),
+ ("bpy.types.functionnodebooleanmath*", "modeling/geometry_nodes/utilities/boolean_math.html#bpy-types-functionnodebooleanmath"),
+ ("bpy.types.functionnodeinputvector*", "modeling/geometry_nodes/input/vector.html#bpy-types-functionnodeinputvector"),
+ ("bpy.types.functionnoderandomfloat*", "modeling/geometry_nodes/input/random_float.html#bpy-types-functionnoderandomfloat"),
+ ("bpy.types.geometrynodepointrotate*", "modeling/geometry_nodes/point/point_rotate.html#bpy-types-geometrynodepointrotate"),
+ ("bpy.types.geometrynodetriangulate*", "modeling/geometry_nodes/mesh/triangulate.html#bpy-types-geometrynodetriangulate"),
("bpy.types.gpencillayer.blend_mode*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-blend-mode"),
("bpy.types.gpencillayer.mask_layer*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-mask-layer"),
("bpy.types.gpencilsculptguide.type*", "grease_pencil/modes/draw/guides.html#bpy-types-gpencilsculptguide-type"),
@@ -704,6 +760,7 @@ url_manual_mapping = (
("bpy.types.rendersettings.filepath*", "render/output/properties/output.html#bpy-types-rendersettings-filepath"),
("bpy.types.rendersettings.fps_base*", "render/output/properties/dimensions.html#bpy-types-rendersettings-fps-base"),
("bpy.types.sceneeevee.use_overscan*", "render/eevee/render_settings/film.html#bpy-types-sceneeevee-use-overscan"),
+ ("bpy.types.sequencetransform.scale*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sequencetransform-scale"),
("bpy.types.shadernodeeeveespecular*", "render/shader_nodes/shader/specular_bsdf.html#bpy-types-shadernodeeeveespecular"),
("bpy.types.shadernodehuesaturation*", "render/shader_nodes/color/hue_saturation.html#bpy-types-shadernodehuesaturation"),
("bpy.types.shadernodetexwhitenoise*", "render/shader_nodes/textures/white_noise.html#bpy-types-shadernodetexwhitenoise"),
@@ -735,6 +792,8 @@ url_manual_mapping = (
("bpy.ops.screen.spacedata_cleanup*", "advanced/operators.html#bpy-ops-screen-spacedata-cleanup"),
("bpy.ops.sculpt.detail_flood_fill*", "sculpt_paint/sculpting/tool_settings/dyntopo.html#bpy-ops-sculpt-detail-flood-fill"),
("bpy.ops.sequencer.duplicate_move*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-duplicate-move"),
+ ("bpy.ops.sequencer.select_grouped*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-grouped"),
+ ("bpy.ops.sequencer.select_handles*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-handles"),
("bpy.ops.uv.average_islands_scale*", "modeling/meshes/uv/editing.html#bpy-ops-uv-average-islands-scale"),
("bpy.ops.view3d.blenderkit_search*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-search"),
("bpy.types.armature.pose_position*", "animation/armatures/properties/skeleton.html#bpy-types-armature-pose-position"),
@@ -765,8 +824,10 @@ url_manual_mapping = (
("bpy.types.curve.bevel_resolution*", "modeling/curves/properties/geometry.html#bpy-types-curve-bevel-resolution"),
("bpy.types.cyclesmaterialsettings*", "render/cycles/material_settings.html#bpy-types-cyclesmaterialsettings"),
("bpy.types.dopesheet.show_summary*", "editors/dope_sheet/introduction.html#bpy-types-dopesheet-show-summary"),
- ("bpy.types.geometrynodeobjectinfo*", "modeling/modifiers/nodes/input/object_info.html#bpy-types-geometrynodeobjectinfo"),
+ ("bpy.types.geometrynodeobjectinfo*", "modeling/geometry_nodes/input/object_info.html#bpy-types-geometrynodeobjectinfo"),
+ ("bpy.types.geometrynodepointscale*", "modeling/geometry_nodes/point/point_scale.html#bpy-types-geometrynodepointscale"),
("bpy.types.imagepaint.use_occlude*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-types-imagepaint-use-occlude"),
+ ("bpy.types.imagesequence.use_flip*", "video_editing/sequencer/sidebar/strip.html#bpy-types-imagesequence-use-flip"),
("bpy.types.latticegpencilmodifier*", "grease_pencil/modifiers/deform/lattice.html#bpy-types-latticegpencilmodifier"),
("bpy.types.mesh.auto_smooth_angle*", "modeling/meshes/structure.html#bpy-types-mesh-auto-smooth-angle"),
("bpy.types.objectsolverconstraint*", "animation/constraints/motion_tracking/object_solver.html#bpy-types-objectsolverconstraint"),
@@ -780,6 +841,7 @@ url_manual_mapping = (
("bpy.types.shadernodelightfalloff*", "render/shader_nodes/color/light_falloff.html#bpy-types-shadernodelightfalloff"),
("bpy.types.shadernodeparticleinfo*", "render/shader_nodes/input/particle_info.html#bpy-types-shadernodeparticleinfo"),
("bpy.types.shadernodevectorrotate*", "render/shader_nodes/vector/vector_rotate.html#bpy-types-shadernodevectorrotate"),
+ ("bpy.types.sound.use_memory_cache*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sound-use-memory-cache"),
("bpy.types.spaceview3d.show_gizmo*", "editors/3dview/display/gizmo.html#bpy-types-spaceview3d-show-gizmo"),
("bpy.types.texturegpencilmodifier*", "grease_pencil/modifiers/color/texture_mapping.html#bpy-types-texturegpencilmodifier"),
("bpy.types.volumedisplacemodifier*", "modeling/modifiers/deform/volume_displace.html#bpy-types-volumedisplacemodifier"),
@@ -790,6 +852,7 @@ url_manual_mapping = (
("bpy.ops.curve.spline_weight_set*", "modeling/curves/editing/other.html#bpy-ops-curve-spline-weight-set"),
("bpy.ops.gpencil.blank_frame_add*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-blank-frame-add"),
("bpy.ops.gpencil.frame_duplicate*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-frame-duplicate"),
+ ("bpy.ops.gpencil.recalc_geometry*", "grease_pencil/modes/edit/grease_pencil_menu.html#bpy-ops-gpencil-recalc-geometry"),
("bpy.ops.gpencil.stroke_caps_set*", "grease_pencil/modes/edit/stroke_menu.html#bpy-ops-gpencil-stroke-caps-set"),
("bpy.ops.gpencil.stroke_separate*", "grease_pencil/modes/edit/grease_pencil_menu.html#bpy-ops-gpencil-stroke-separate"),
("bpy.ops.gpencil.stroke_simplify*", "grease_pencil/modes/edit/stroke_menu.html#bpy-ops-gpencil-stroke-simplify"),
@@ -802,6 +865,7 @@ url_manual_mapping = (
("bpy.ops.object.constraints_copy*", "animation/constraints/interface/adding_removing.html#bpy-ops-object-constraints-copy"),
("bpy.ops.object.gpencil_modifier*", "grease_pencil/modifiers/index.html#bpy-ops-object-gpencil-modifier"),
("bpy.ops.object.make_single_user*", "scene_layout/object/editing/relations/make_single_user.html#bpy-ops-object-make-single-user"),
+ ("bpy.ops.object.multires_reshape*", "modeling/modifiers/generate/multiresolution.html#bpy-ops-object-multires-reshape"),
("bpy.ops.object.select_hierarchy*", "scene_layout/object/selecting.html#bpy-ops-object-select-hierarchy"),
("bpy.ops.object.vertex_group_add*", "modeling/meshes/properties/vertex_groups/vertex_groups.html#bpy-ops-object-vertex-group-add"),
("bpy.ops.object.vertex_group_fix*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-fix"),
@@ -810,9 +874,10 @@ url_manual_mapping = (
("bpy.ops.paint.weight_from_bones*", "sculpt_paint/weight_paint/editing.html#bpy-ops-paint-weight-from-bones"),
("bpy.ops.poselib.action_sanitize*", "animation/armatures/properties/pose_library.html#bpy-ops-poselib-action-sanitize"),
("bpy.ops.preferences.studiolight*", "editors/preferences/lights.html#bpy-ops-preferences-studiolight"),
- ("bpy.ops.scene.view_layer_remove*", "render/layers/layers.html#bpy-ops-scene-view-layer-remove"),
+ ("bpy.ops.scene.view_layer_remove*", "render/layers/introduction.html#bpy-ops-scene-view-layer-remove"),
("bpy.ops.screen.screen_full_area*", "interface/window_system/areas.html#bpy-ops-screen-screen-full-area"),
("bpy.ops.sculpt.face_sets_create*", "sculpt_paint/sculpting/editing/face_sets.html#bpy-ops-sculpt-face-sets-create"),
+ ("bpy.ops.sequencer.select_linked*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-linked"),
("bpy.ops.transform.rotate_normal*", "modeling/meshes/editing/mesh/normals.html#bpy-ops-transform-rotate-normal"),
("bpy.ops.transform.shrink_fatten*", "modeling/meshes/editing/mesh/transform/shrink-fatten.html#bpy-ops-transform-shrink-fatten"),
("bpy.ops.transform.vertex_random*", "modeling/meshes/editing/mesh/transform/randomize.html#bpy-ops-transform-vertex-random"),
@@ -841,8 +906,8 @@ url_manual_mapping = (
("bpy.types.dopesheet.filter_text*", "editors/graph_editor/channels.html#bpy-types-dopesheet-filter-text"),
("bpy.types.fluideffectorsettings*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings"),
("bpy.types.followtrackconstraint*", "animation/constraints/motion_tracking/follow_track.html#bpy-types-followtrackconstraint"),
- ("bpy.types.geometrynodeedgesplit*", "modeling/modifiers/nodes/mesh/edge_split.html#bpy-types-geometrynodeedgesplit"),
- ("bpy.types.geometrynodetransform*", "modeling/modifiers/nodes/geometry/transform.html#bpy-types-geometrynodetransform"),
+ ("bpy.types.geometrynodeedgesplit*", "modeling/geometry_nodes/mesh/edge_split.html#bpy-types-geometrynodeedgesplit"),
+ ("bpy.types.geometrynodetransform*", "modeling/geometry_nodes/geometry/transform.html#bpy-types-geometrynodetransform"),
("bpy.types.gpencilsculptsettings*", "grease_pencil/properties/index.html#bpy-types-gpencilsculptsettings"),
("bpy.types.light.cutoff_distance*", "render/eevee/lighting.html#bpy-types-light-cutoff-distance"),
("bpy.types.lockedtrackconstraint*", "animation/constraints/tracking/locked_track.html#bpy-types-lockedtrackconstraint"),
@@ -918,6 +983,7 @@ url_manual_mapping = (
("bpy.types.posebone.rigify_type*", "addons/rigging/rigify/rig_types/index.html#bpy-types-posebone-rigify-type"),
("bpy.types.preferencesfilepaths*", "editors/preferences/file_paths.html#bpy-types-preferencesfilepaths"),
("bpy.types.scene.background_set*", "scene_layout/scene/properties.html#bpy-types-scene-background-set"),
+ ("bpy.types.sequence.frame_start*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sequence-frame-start"),
("bpy.types.shadernodebackground*", "render/shader_nodes/shader/background.html#bpy-types-shadernodebackground"),
("bpy.types.shadernodebsdfglossy*", "render/shader_nodes/shader/glossy.html#bpy-types-shadernodebsdfglossy"),
("bpy.types.shadernodebsdfvelvet*", "render/shader_nodes/shader/velvet.html#bpy-types-shadernodebsdfvelvet"),
@@ -935,7 +1001,7 @@ url_manual_mapping = (
("bpy.types.texturenodecurvetime*", "editors/texture_node/types/input/time.html#bpy-types-texturenodecurvetime"),
("bpy.types.transformorientation*", "editors/3dview/controls/orientation.html#bpy-types-transformorientation"),
("bpy.types.unifiedpaintsettings*", "sculpt_paint/brush/brush.html#bpy-types-unifiedpaintsettings"),
- ("bpy.types.viewlayer.use_strand*", "render/layers/layers.html#bpy-types-viewlayer-use-strand"),
+ ("bpy.types.viewlayer.use_strand*", "render/layers/introduction.html#bpy-types-viewlayer-use-strand"),
("bpy.types.volume.sequence_mode*", "modeling/volumes/properties.html#bpy-types-volume-sequence-mode"),
("bpy.types.volumetomeshmodifier*", "modeling/modifiers/generate/volume_to_mesh.html#bpy-types-volumetomeshmodifier"),
("bpy.types.whitebalancemodifier*", "video_editing/sequencer/sidebar/modifiers.html#bpy-types-whitebalancemodifier"),
@@ -952,6 +1018,7 @@ url_manual_mapping = (
("bpy.ops.mesh.faces_shade_flat*", "modeling/meshes/editing/face/shading.html#bpy-ops-mesh-faces-shade-flat"),
("bpy.ops.mesh.paint_mask_slice*", "sculpt_paint/sculpting/editing/mask.html#bpy-ops-mesh-paint-mask-slice"),
("bpy.ops.mesh.select_ungrouped*", "modeling/meshes/selecting/all_by_trait.html#bpy-ops-mesh-select-ungrouped"),
+ ("bpy.ops.node.tree_path_parent*", "interface/controls/nodes/groups.html#bpy-ops-node-tree-path-parent"),
("bpy.ops.object.duplicate_move*", "scene_layout/object/editing/duplicate.html#bpy-ops-object-duplicate-move"),
("bpy.ops.object.hook_add_selob*", "modeling/meshes/editing/vertex/hooks.html#bpy-ops-object-hook-add-selob"),
("bpy.ops.object.select_by_type*", "scene_layout/object/selecting.html#bpy-ops-object-select-by-type"),
@@ -968,6 +1035,9 @@ url_manual_mapping = (
("bpy.ops.sculpt.face_sets_init*", "sculpt_paint/sculpting/editing/face_sets.html#bpy-ops-sculpt-face-sets-init"),
("bpy.ops.sequencer.change_path*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-change-path"),
("bpy.ops.sequencer.refresh_all*", "video_editing/sequencer/navigating.html#bpy-ops-sequencer-refresh-all"),
+ ("bpy.ops.sequencer.select_less*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-less"),
+ ("bpy.ops.sequencer.select_more*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-more"),
+ ("bpy.ops.sequencer.select_side*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-side"),
("bpy.ops.sequencer.swap_inputs*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-swap-inputs"),
("bpy.ops.surface.primitive*add*", "modeling/surfaces/primitives.html#bpy-ops-surface-primitive-add"),
("bpy.ops.text.resolve_conflict*", "editors/text_editor.html#bpy-ops-text-resolve-conflict"),
@@ -993,7 +1063,7 @@ url_manual_mapping = (
("bpy.types.curve.use_map_taper*", "modeling/curves/properties/geometry.html#bpy-types-curve-use-map-taper"),
("bpy.types.cyclesworldsettings*", "render/cycles/world_settings.html#bpy-types-cyclesworldsettings"),
("bpy.types.fluiddomainsettings*", "physics/fluid/type/domain/index.html#bpy-types-fluiddomainsettings"),
- ("bpy.types.geometrynodeboolean*", "modeling/modifiers/nodes/mesh/boolean.html#bpy-types-geometrynodeboolean"),
+ ("bpy.types.geometrynodeboolean*", "modeling/geometry_nodes/mesh/boolean.html#bpy-types-geometrynodeboolean"),
("bpy.types.hookgpencilmodifier*", "grease_pencil/modifiers/deform/hook.html#bpy-types-hookgpencilmodifier"),
("bpy.types.imageformatsettings*", "files/media/image_formats.html#bpy-types-imageformatsettings"),
("bpy.types.kinematicconstraint*", "animation/constraints/tracking/ik_solver.html#bpy-types-kinematicconstraint"),
@@ -1024,7 +1094,7 @@ url_manual_mapping = (
("bpy.types.tintgpencilmodifier*", "grease_pencil/modifiers/color/tint.html#bpy-types-tintgpencilmodifier"),
("bpy.types.transformconstraint*", "animation/constraints/transform/transformation.html#bpy-types-transformconstraint"),
("bpy.types.triangulatemodifier*", "modeling/modifiers/generate/triangulate.html#bpy-types-triangulatemodifier"),
- ("bpy.types.viewlayer.use_solid*", "render/layers/layers.html#bpy-types-viewlayer-use-solid"),
+ ("bpy.types.viewlayer.use_solid*", "render/layers/introduction.html#bpy-types-viewlayer-use-solid"),
("bpy.types.volume.frame_offset*", "modeling/volumes/properties.html#bpy-types-volume-frame-offset"),
("bpy.types.windowmanager.addon*", "editors/preferences/addons.html#bpy-types-windowmanager-addon"),
("bpy.ops.anim.keyframe_delete*", "animation/keyframes/editing.html#bpy-ops-anim-keyframe-delete"),
@@ -1055,11 +1125,13 @@ url_manual_mapping = (
("bpy.ops.paint.add_simple_uvs*", "sculpt_paint/texture_paint/tool_settings/texture_slots.html#bpy-ops-paint-add-simple-uvs"),
("bpy.ops.pose.rigify_generate*", "addons/rigging/rigify/basics.html#bpy-ops-pose-rigify-generate"),
("bpy.ops.preferences.autoexec*", "editors/preferences/save_load.html#bpy-ops-preferences-autoexec"),
- ("bpy.ops.scene.view_layer_add*", "render/layers/layers.html#bpy-ops-scene-view-layer-add"),
+ ("bpy.ops.scene.view_layer_add*", "render/layers/introduction.html#bpy-ops-scene-view-layer-add"),
("bpy.ops.sculpt.face_set_edit*", "sculpt_paint/sculpting/editing/face_sets.html#bpy-ops-sculpt-face-set-edit"),
("bpy.ops.sequencer.gap_insert*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-gap-insert"),
("bpy.ops.sequencer.gap_remove*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-gap-remove"),
("bpy.ops.sequencer.rendersize*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-rendersize"),
+ ("bpy.ops.sequencer.select_all*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-all"),
+ ("bpy.ops.sequencer.select_box*", "video_editing/sequencer/selecting.html#bpy-ops-sequencer-select-box"),
("bpy.ops.sound.bake_animation*", "scene_layout/scene/properties.html#bpy-ops-sound-bake-animation"),
("bpy.ops.transform.edge_slide*", "modeling/meshes/editing/edge/edge_slide.html#bpy-ops-transform-edge-slide"),
("bpy.ops.transform.vert_slide*", "modeling/meshes/editing/vertex/slide_vertices.html#bpy-ops-transform-vert-slide"),
@@ -1070,7 +1142,7 @@ url_manual_mapping = (
("bpy.types.alphaundersequence*", "video_editing/sequencer/strips/effects/alpha_over_under_overdrop.html#bpy-types-alphaundersequence"),
("bpy.types.armatureconstraint*", "animation/constraints/relationship/armature.html#bpy-types-armatureconstraint"),
("bpy.types.compositornodeblur*", "compositing/types/filter/blur_node.html#bpy-types-compositornodeblur"),
- ("bpy.types.compositornodecomb*", "compositing/types/converter/combine_separate.html#bpy-types-compositornodecomb"),
+ ("bpy.types.compositornodecomb*", "editors/texture_node/types/color/combine_separate.html#bpy-types-compositornodecomb"),
("bpy.types.compositornodecrop*", "compositing/types/distort/crop.html#bpy-types-compositornodecrop"),
("bpy.types.compositornodeflip*", "compositing/types/distort/flip.html#bpy-types-compositornodeflip"),
("bpy.types.compositornodemask*", "compositing/types/input/mask.html#bpy-types-compositornodemask"),
@@ -1114,7 +1186,6 @@ url_manual_mapping = (
("bpy.types.shadernodetexmagic*", "render/shader_nodes/textures/magic.html#bpy-types-shadernodetexmagic"),
("bpy.types.shadernodetexnoise*", "render/shader_nodes/textures/noise.html#bpy-types-shadernodetexnoise"),
("bpy.types.shrinkwrapmodifier*", "modeling/modifiers/deform/shrinkwrap.html#bpy-types-shrinkwrapmodifier"),
- ("bpy.types.simulationmodifier*", "modeling/modifiers/physics/simulation.html#bpy-types-simulationmodifier"),
("bpy.types.splineikconstraint*", "animation/constraints/tracking/spline_ik.html#bpy-types-splineikconstraint"),
("bpy.types.texturenodetexture*", "editors/texture_node/types/input/texture.html#bpy-types-texturenodetexture"),
("bpy.types.view3dshading.type*", "editors/3dview/display/shading.html#bpy-types-view3dshading-type"),
@@ -1162,6 +1233,7 @@ url_manual_mapping = (
("bpy.ops.transform.trackball*", "scene_layout/object/editing/transform/rotate.html#bpy-ops-transform-trackball"),
("bpy.ops.transform.transform*", "scene_layout/object/editing/transform/align_transform_orientation.html#bpy-ops-transform-transform"),
("bpy.ops.transform.translate*", "scene_layout/object/editing/transform/move.html#bpy-ops-transform-translate"),
+ ("bpy.ops.ui.eyedropper_color*", "interface/controls/templates/color_picker.html#bpy-ops-ui-eyedropper-color"),
("bpy.ops.uv.cylinder_project*", "modeling/meshes/editing/uv.html#bpy-ops-uv-cylinder-project"),
("bpy.ops.uv.minimize_stretch*", "modeling/meshes/uv/editing.html#bpy-ops-uv-minimize-stretch"),
("bpy.ops.uv.select_edge_ring*", "editors/uv/selecting.html#bpy-ops-uv-select-edge-ring"),
@@ -1176,13 +1248,14 @@ url_manual_mapping = (
("bpy.types.collisionmodifier*", "physics/collision.html#bpy-types-collisionmodifier"),
("bpy.types.collisionsettings*", "physics/collision.html#bpy-types-collisionsettings"),
("bpy.types.compositornodergb*", "compositing/types/input/rgb.html#bpy-types-compositornodergb"),
- ("bpy.types.compositornodesep*", "compositing/types/converter/combine_separate.html#bpy-types-compositornodesep"),
+ ("bpy.types.compositornodesep*", "editors/texture_node/types/color/combine_separate.html#bpy-types-compositornodesep"),
("bpy.types.curve.bevel_depth*", "modeling/curves/properties/geometry.html#bpy-types-curve-bevel-depth"),
("bpy.types.curve.use_stretch*", "modeling/curves/properties/shape.html#bpy-types-curve-use-stretch"),
("bpy.types.edgesplitmodifier*", "modeling/modifiers/generate/edge_split.html#bpy-types-edgesplitmodifier"),
("bpy.types.fluidflowsettings*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings"),
("bpy.types.fmodifierenvelope*", "editors/graph_editor/fcurves/sidebar/modifiers.html#bpy-types-fmodifierenvelope"),
("bpy.types.freestylesettings*", "render/freestyle/view_layer.html#bpy-types-freestylesettings"),
+ ("bpy.types.geometrynodegroup*", "modeling/geometry_nodes/group.html#bpy-types-geometrynodegroup"),
("bpy.types.gpencillayer.hide*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-hide"),
("bpy.types.gpencillayer.lock*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-lock"),
("bpy.types.imagepaint.dither*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-types-imagepaint-dither"),
@@ -1200,6 +1273,7 @@ url_manual_mapping = (
("bpy.types.scene.active_clip*", "scene_layout/scene/properties.html#bpy-types-scene-active-clip"),
("bpy.types.scene.frame_start*", "render/output/properties/dimensions.html#bpy-types-scene-frame-start"),
("bpy.types.sceneeevee.shadow*", "render/eevee/render_settings/shadows.html#bpy-types-sceneeevee-shadow"),
+ ("bpy.types.sequencetransform*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sequencetransform"),
("bpy.types.shadernodecombine*", "render/shader_nodes/converter/combine_separate.html#bpy-types-shadernodecombine"),
("bpy.types.shadernodefresnel*", "render/shader_nodes/input/fresnel.html#bpy-types-shadernodefresnel"),
("bpy.types.shadernodeholdout*", "render/shader_nodes/shader/holdout.html#bpy-types-shadernodeholdout"),
@@ -1214,8 +1288,8 @@ url_manual_mapping = (
("bpy.types.tracktoconstraint*", "animation/constraints/tracking/track_to.html#bpy-types-tracktoconstraint"),
("bpy.types.transformsequence*", "video_editing/sequencer/strips/effects/transform.html#bpy-types-transformsequence"),
("bpy.types.uvprojectmodifier*", "modeling/modifiers/modify/uv_project.html#bpy-types-uvprojectmodifier"),
- ("bpy.types.viewlayer.samples*", "render/layers/layers.html#bpy-types-viewlayer-samples"),
- ("bpy.types.viewlayer.use_sky*", "render/layers/layers.html#bpy-types-viewlayer-use-sky"),
+ ("bpy.types.viewlayer.samples*", "render/layers/introduction.html#bpy-types-viewlayer-samples"),
+ ("bpy.types.viewlayer.use_sky*", "render/layers/introduction.html#bpy-types-viewlayer-use-sky"),
("bpy.types.wireframemodifier*", "modeling/modifiers/generate/wireframe.html#bpy-types-wireframemodifier"),
("bpy.types.worldmistsettings*", "render/cycles/world_settings.html#bpy-types-worldmistsettings"),
("bpy.ops.anim.channels_move*", "editors/nla/editing.html#bpy-ops-anim-channels-move"),
@@ -1241,6 +1315,7 @@ url_manual_mapping = (
("bpy.ops.mesh.sort_elements*", "modeling/meshes/editing/mesh/sort_elements.html#bpy-ops-mesh-sort-elements"),
("bpy.ops.mesh.split_normals*", "modeling/meshes/editing/mesh/normals.html#bpy-ops-mesh-split-normals"),
("bpy.ops.mesh.symmetry_snap*", "modeling/meshes/editing/mesh/snap_symmetry.html#bpy-ops-mesh-symmetry-snap"),
+ ("bpy.ops.node.group_ungroup*", "interface/controls/nodes/groups.html#bpy-ops-node-group-ungroup"),
("bpy.ops.object.gpencil_add*", "grease_pencil/primitives.html#bpy-ops-object-gpencil-add"),
("bpy.ops.object.select_less*", "scene_layout/object/selecting.html#bpy-ops-object-select-less"),
("bpy.ops.object.select_more*", "scene_layout/object/selecting.html#bpy-ops-object-select-more"),
@@ -1280,6 +1355,7 @@ url_manual_mapping = (
("bpy.types.scene.frame_step*", "render/output/properties/dimensions.html#bpy-types-scene-frame-step"),
("bpy.types.sceneeevee.bloom*", "render/eevee/render_settings/bloom.html#bpy-types-sceneeevee-bloom"),
("bpy.types.sculpt.show_mask*", "sculpt_paint/sculpting/editing/mask.html#bpy-types-sculpt-show-mask"),
+ ("bpy.types.sequence.channel*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sequence-channel"),
("bpy.types.sequencemodifier*", "video_editing/sequencer/sidebar/modifiers.html#bpy-types-sequencemodifier"),
("bpy.types.shaderfxcolorize*", "grease_pencil/visual_effects/colorize.html#bpy-types-shaderfxcolorize"),
("bpy.types.shaderfxpixelate*", "grease_pencil/visual_effects/pixelate.html#bpy-types-shaderfxpixelate"),
@@ -1298,9 +1374,10 @@ url_manual_mapping = (
("bpy.types.spaceview3d.show*", "editors/3dview/display/index.html#bpy-types-spaceview3d-show"),
("bpy.types.subtractsequence*", "video_editing/sequencer/strips/effects/subtract.html#bpy-types-subtractsequence"),
("bpy.types.text.indentation*", "editors/text_editor.html#bpy-types-text-indentation"),
+ ("bpy.types.texture.contrast*", "render/materials/legacy_textures/colors.html#bpy-types-texture-contrast"),
("bpy.types.texturenodegroup*", "editors/texture_node/types/groups.html#bpy-types-texturenodegroup"),
("bpy.types.texturenodeimage*", "editors/texture_node/types/input/image.html#bpy-types-texturenodeimage"),
- ("bpy.types.viewlayer.use_ao*", "render/layers/layers.html#bpy-types-viewlayer-use-ao"),
+ ("bpy.types.viewlayer.use_ao*", "render/layers/introduction.html#bpy-types-viewlayer-use-ao"),
("bpy.ops.clip.clean_tracks*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-clean-tracks"),
("bpy.ops.clip.delete_track*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-delete-track"),
("bpy.ops.clip.solve_camera*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-solve-camera"),
@@ -1392,7 +1469,7 @@ url_manual_mapping = (
("bpy.ops.object.track_set*", "animation/constraints/interface/adding_removing.html#bpy-ops-object-track-set"),
("bpy.ops.pose.scale_clear*", "animation/armatures/posing/editing/clear.html#bpy-ops-pose-scale-clear"),
("bpy.ops.poselib.pose_add*", "animation/armatures/posing/editing/pose_library.html#bpy-ops-poselib-pose-add"),
- ("bpy.ops.scene.view_layer*", "render/layers/layers.html#bpy-ops-scene-view-layer"),
+ ("bpy.ops.scene.view_layer*", "render/layers/introduction.html#bpy-ops-scene-view-layer"),
("bpy.ops.sequencer.delete*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-delete"),
("bpy.ops.sequencer.reload*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-reload"),
("bpy.ops.sequencer.unlock*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-unlock"),
@@ -1426,11 +1503,12 @@ url_manual_mapping = (
("bpy.types.shadernodebump*", "render/shader_nodes/vector/bump.html#bpy-types-shadernodebump"),
("bpy.types.shadernodemath*", "render/shader_nodes/converter/math.html#bpy-types-shadernodemath"),
("bpy.types.smoothmodifier*", "modeling/modifiers/deform/smooth.html#bpy-types-smoothmodifier"),
+ ("bpy.types.sound.use_mono*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sound-use-mono"),
("bpy.types.spline.order_u*", "modeling/curves/properties/active_spline.html#bpy-types-spline-order-u"),
("bpy.types.timelinemarker*", "animation/markers.html#bpy-types-timelinemarker"),
("bpy.types.usersolidlight*", "editors/preferences/lights.html#bpy-types-usersolidlight"),
("bpy.types.uvwarpmodifier*", "modeling/modifiers/modify/uv_warp.html#bpy-types-uvwarpmodifier"),
- ("bpy.types.viewlayer.name*", "render/layers/layers.html#bpy-types-viewlayer-name"),
+ ("bpy.types.viewlayer.name*", "render/layers/introduction.html#bpy-types-viewlayer-name"),
("bpy.types.voronoitexture*", "render/materials/legacy_textures/types/voronoi.html#bpy-types-voronoitexture"),
("bpy.types.walknavigation*", "editors/3dview/navigate/walk_fly.html#bpy-types-walknavigation"),
("bpy.ops.*.select_circle*", "interface/selecting.html#bpy-ops-select-circle"),
@@ -1455,6 +1533,7 @@ url_manual_mapping = (
("bpy.ops.nla.apply_scale*", "editors/nla/editing.html#bpy-ops-nla-apply-scale"),
("bpy.ops.nla.clear_scale*", "editors/nla/editing.html#bpy-ops-nla-clear-scale"),
("bpy.ops.nla.mute_toggle*", "editors/nla/editing.html#bpy-ops-nla-mute-toggle"),
+ ("bpy.ops.node.group_make*", "interface/controls/nodes/groups.html#bpy-ops-node-group-make"),
("bpy.ops.object.armature*", "animation/armatures/index.html#bpy-ops-object-armature"),
("bpy.ops.object.face_map*", "modeling/meshes/properties/object_data.html#bpy-ops-object-face-map"),
("bpy.ops.outliner.delete*", "editors/outliner/editing.html#bpy-ops-outliner-delete"),
@@ -1499,7 +1578,7 @@ url_manual_mapping = (
("bpy.types.sceneeevee.gi*", "render/eevee/render_settings/indirect_lighting.html#bpy-types-sceneeevee-gi"),
("bpy.types.scenesequence*", "video_editing/sequencer/strips/scene.html#bpy-types-scenesequence"),
("bpy.types.screwmodifier*", "modeling/modifiers/generate/screw.html#bpy-types-screwmodifier"),
- ("bpy.types.sequenceproxy*", "video_editing/sequencer/sidebar/proxy_cache.html#bpy-types-sequenceproxy"),
+ ("bpy.types.sequenceproxy*", "video_editing/sequencer/sidebar/proxy.html#bpy-types-sequenceproxy"),
("bpy.types.shaderfxswirl*", "grease_pencil/visual_effects/swirl.html#bpy-types-shaderfxswirl"),
("bpy.types.shadernodergb*", "render/shader_nodes/input/rgb.html#bpy-types-shadernodergb"),
("bpy.types.soundsequence*", "video_editing/sequencer/strips/sound.html#bpy-types-soundsequence"),
@@ -1508,6 +1587,7 @@ url_manual_mapping = (
("bpy.types.spaceuveditor*", "editors/uv/index.html#bpy-types-spaceuveditor"),
("bpy.types.stuccitexture*", "render/materials/legacy_textures/types/stucci.html#bpy-types-stuccitexture"),
("bpy.types.view3doverlay*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay"),
+ ("bpy.types.viewlayer.use*", "render/layers/view_layer.html#bpy-types-viewlayer-use"),
("bpy.types.volumedisplay*", "modeling/volumes/properties.html#bpy-types-volumedisplay"),
("bpy.types.windowmanager*", "interface/index.html#bpy-types-windowmanager"),
("bpy.ops.*.select_lasso*", "interface/selecting.html#bpy-ops-select-lasso"),
@@ -1549,6 +1629,7 @@ url_manual_mapping = (
("bpy.types.castmodifier*", "modeling/modifiers/deform/cast.html#bpy-types-castmodifier"),
("bpy.types.colormanaged*", "render/color_management.html#bpy-types-colormanaged"),
("bpy.types.curve.offset*", "modeling/curves/properties/geometry.html#bpy-types-curve-offset"),
+ ("bpy.types.geometrynode*", "modeling/geometry_nodes/index.html#bpy-types-geometrynode"),
("bpy.types.glowsequence*", "video_editing/sequencer/strips/effects/glow.html#bpy-types-glowsequence"),
("bpy.types.gpencillayer*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer"),
("bpy.types.hookmodifier*", "modeling/modifiers/deform/hooks.html#bpy-types-hookmodifier"),
@@ -1563,6 +1644,7 @@ url_manual_mapping = (
("bpy.types.object.scale*", "scene_layout/object/properties/transforms.html#bpy-types-object-scale"),
("bpy.types.particleedit*", "physics/particles/mode.html#bpy-types-particleedit"),
("bpy.types.scene.camera*", "scene_layout/scene/properties.html#bpy-types-scene-camera"),
+ ("bpy.types.sequencecrop*", "video_editing/sequencer/sidebar/strip.html#bpy-types-sequencecrop"),
("bpy.types.shaderfxblur*", "grease_pencil/visual_effects/blur.html#bpy-types-shaderfxblur"),
("bpy.types.shaderfxflip*", "grease_pencil/visual_effects/flip.html#bpy-types-shaderfxflip"),
("bpy.types.shaderfxglow*", "grease_pencil/visual_effects/glow.html#bpy-types-shaderfxglow"),
@@ -1629,6 +1711,7 @@ url_manual_mapping = (
("bpy.ops.graph.mirror*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-mirror"),
("bpy.ops.graph.sample*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-sample"),
("bpy.ops.graph.smooth*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-smooth"),
+ ("bpy.ops.graph.unbake*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-unbake"),
("bpy.ops.object.align*", "scene_layout/object/editing/transform/align_objects.html#bpy-ops-object-align"),
("bpy.ops.object.empty*", "modeling/empties.html#bpy-ops-object-empty"),
("bpy.ops.object.quick*", "physics/introduction.html#bpy-ops-object-quick"),
@@ -1680,7 +1763,7 @@ url_manual_mapping = (
("bpy.types.udimtiles*", "modeling/meshes/uv/workflows/udims.html#bpy-types-udimtiles"),
("bpy.types.uipiemenu*", "interface/controls/buttons/menus.html#bpy-types-uipiemenu"),
("bpy.types.uipopover*", "interface/controls/buttons/menus.html#bpy-types-uipopover"),
- ("bpy.types.viewlayer*", "render/layers/layers.html#bpy-types-viewlayer"),
+ ("bpy.types.viewlayer*", "render/layers/introduction.html#bpy-types-viewlayer"),
("bpy.ops.collection*", "scene_layout/collections/collections.html#bpy-ops-collection"),
("bpy.ops.constraint*", "animation/constraints/index.html#bpy-ops-constraint"),
("bpy.ops.curve.draw*", "modeling/curves/tools/draw.html#bpy-ops-curve-draw"),
@@ -1701,6 +1784,7 @@ url_manual_mapping = (
("bpy.ops.pose.paste*", "animation/armatures/posing/editing/copy_paste.html#bpy-ops-pose-paste"),
("bpy.ops.pose.relax*", "animation/armatures/posing/editing/in_betweens.html#bpy-ops-pose-relax"),
("bpy.ops.safe_areas*", "render/cameras.html#bpy-ops-safe-areas"),
+ ("bpy.types.aov.type*", "render/layers/passes.html#bpy-types-aov-type"),
("bpy.types.armature*", "animation/armatures/index.html#bpy-types-armature"),
("bpy.types.editbone*", "animation/armatures/bones/editing/index.html#bpy-types-editbone"),
("bpy.types.facemaps*", "modeling/meshes/properties/object_data.html#bpy-types-facemaps"),
@@ -1819,6 +1903,7 @@ url_manual_mapping = (
("bpy.ops.paint*", "sculpt_paint/index.html#bpy-ops-paint"),
("bpy.ops.scene*", "scene_layout/scene/index.html#bpy-ops-scene"),
("bpy.ops.sound*", "render/output/audio/index.html#bpy-ops-sound"),
+ ("bpy.types.aov*", "render/layers/passes.html#bpy-types-aov"),
("bpy.types.key*", "animation/shape_keys/index.html#bpy-types-key"),
("bpy.ops.anim*", "animation/index.html#bpy-ops-anim"),
("bpy.ops.boid*", "physics/particles/emitter/physics/boids.html#bpy-ops-boid"),
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index d3990851e2c..73f05fb3d80 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -290,11 +290,16 @@ def _template_items_uv_select_mode(params):
]
-def _template_items_proportional_editing(*, connected=False):
+def _template_items_proportional_editing(params, *, connected, toggle_data_path):
return [
- op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ (
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True})
+ if not params.legacy else
+ ("wm.context_cycle_enum", {"type": 'O', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.proportional_edit_falloff'), ("wrap", True)]})
+ ),
("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
- {"properties": [("data_path", 'tool_settings.use_proportional_edit')]}),
+ {"properties": [("data_path", toggle_data_path)]}),
*(() if not connected else (
("wm.context_toggle", {"type": 'O', "value": 'PRESS', "alt": True},
{"properties": [("data_path", 'tool_settings.use_proportional_connected')]}),
@@ -537,6 +542,9 @@ def km_screen(params):
("ed.undo_history", {"type": 'Z', "value": 'PRESS', "ctrl": True, "alt": True}, None),
("screen.screen_full_area", {"type": 'UP_ARROW', "value": 'PRESS', "ctrl": True}, None),
("screen.screen_full_area", {"type": 'DOWN_ARROW', "value": 'PRESS', "ctrl": True}, None),
+ ("screen.screen_full_area", {"type": 'SPACE', "value": 'PRESS', "shift": True}, None),
+ ("screen.screen_full_area", {"type": 'F10', "value": 'PRESS', "alt": True},
+ {"properties": [("use_hide_panels", True)]}),
("screen.screen_set", {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
{"properties": [("delta", 1)]}),
("screen.screen_set", {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
@@ -788,9 +796,9 @@ def km_outliner(params):
("outliner.select_box", {"type": 'B', "value": 'PRESS'}, None),
("outliner.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, {"properties": [("tweak", True)]}),
("outliner.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True},
- {"properties": [("tweak", True), ("mode", "ADD")]}),
+ {"properties": [("tweak", True), ("mode", 'ADD')]}),
("outliner.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True},
- {"properties": [("tweak", True), ("mode", "SUB")]}),
+ {"properties": [("tweak", True), ("mode", 'SUB')]}),
("outliner.select_walk", {"type": 'UP_ARROW', "value": 'PRESS', "repeat": True},
{"properties": [("direction", 'UP')]}),
("outliner.select_walk", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "repeat": True},
@@ -915,9 +923,14 @@ def km_uv_editor(params):
("uv.hide", {"type": 'H', "value": 'PRESS', "shift": True},
{"properties": [("unselected", True)]}),
("uv.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- op_menu_pie("IMAGE_MT_uvs_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ (
+ op_menu_pie("IMAGE_MT_uvs_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True})
+ if not params.legacy else
+ op_menu("IMAGE_MT_uvs_snap", {"type": 'S', "value": 'PRESS', "shift": True})
+ ),
op_menu("IMAGE_MT_uvs_select_mode", {"type": 'TAB', "value": 'PRESS', "ctrl": True}),
- *_template_items_proportional_editing(connected=False),
+ *_template_items_proportional_editing(
+ params, connected=False, toggle_data_path='tool_settings.use_proportional_edit'),
("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
("transform.translate", {"type": params.select_tweak, "value": 'ANY'}, None),
("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
@@ -1215,17 +1228,22 @@ def km_view3d(params):
("transform.tosphere", {"type": 'S', "value": 'PRESS', "shift": True, "alt": True}, None),
("transform.shear", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
("transform.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ("object.transform_axis_target", {"type": 'T', "value": 'PRESS', "shift": True}, None),
+ ("transform.skin_resize", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
+ # Snapping.
("wm.context_toggle", {"type": 'TAB', "value": 'PRESS', "shift": True},
{"properties": [("data_path", 'tool_settings.use_snap')]}),
op_panel("VIEW3D_PT_snapping", {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True}, [("keep_open", True)]),
- ("object.transform_axis_target", {"type": 'T', "value": 'PRESS', "shift": True}, None),
- ("transform.skin_resize", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
+ (
+ op_menu_pie("VIEW3D_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True})
+ if not params.legacy else
+ op_menu("VIEW3D_MT_snap", {"type": 'S', "value": 'PRESS', "shift": True})
+ ),
])
if not params.legacy:
# New pie menus.
items.extend([
- op_menu_pie("VIEW3D_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
("wm.context_toggle", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True},
{"properties": [("data_path", 'space_data.show_gizmo')]}),
op_menu_pie("VIEW3D_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
@@ -1246,7 +1264,6 @@ def km_view3d(params):
else:
items.extend([
# Old navigation.
- op_menu("VIEW3D_MT_snap", {"type": 'S', "value": 'PRESS', "shift": True}),
("view3d.view_lock_to_active", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "shift": True}, None),
("view3d.view_lock_clear", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "alt": True}, None),
("view3d.navigate", {"type": 'F', "value": 'PRESS', "shift": True}, None),
@@ -1335,9 +1352,8 @@ def km_mask_editing(params):
items.extend([
("mask.new", {"type": 'N', "value": 'PRESS', "alt": True}, None),
op_menu("MASK_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}),
- op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
- ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
- {"properties": [("data_path", 'tool_settings.use_proportional_edit_mask')]}),
+ *_template_items_proportional_editing(
+ params, connected=False, toggle_data_path='tool_settings.use_proportional_edit_mask'),
("mask.add_vertex_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
("mask.add_feather_vertex_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
("mask.delete", {"type": 'X', "value": 'PRESS'}, None),
@@ -1445,7 +1461,7 @@ def km_time_scrub(_params):
)
items.extend([
- ("anim.change_frame", {"type": "LEFTMOUSE", "value": 'PRESS'}, None),
+ ("anim.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
])
return keymap
@@ -1460,7 +1476,7 @@ def km_time_scrub_clip(_params):
)
items.extend([
- ("clip.change_frame", {"type": "LEFTMOUSE", "value": 'PRESS'}, None),
+ ("clip.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
])
return keymap
@@ -1554,7 +1570,11 @@ def km_graph_editor(params):
("graph.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None),
("graph.select_linked", {"type": 'L', "value": 'PRESS'}, None),
("graph.frame_jump", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- op_menu_pie("GRAPH_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ (
+ op_menu_pie("GRAPH_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True})
+ if not params.legacy else
+ ("graph.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None)
+ ),
("graph.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
("graph.handle_type", {"type": 'V', "value": 'PRESS'}, None),
("graph.interpolation_type", {"type": 'T', "value": 'PRESS'}, None),
@@ -1563,7 +1583,7 @@ def km_graph_editor(params):
("graph.sample", {"type": 'O', "value": 'PRESS', "shift": True, "alt": True}, None),
("graph.bake", {"type": 'C', "value": 'PRESS', "alt": True}, None),
op_menu("GRAPH_MT_delete", {"type": 'X', "value": 'PRESS'}),
- op_menu("GRAPH_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("graph.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
("graph.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
("graph.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
("graph.click_insert", {"type": params.action_mouse, "value": 'CLICK', "ctrl": True},
@@ -1588,15 +1608,28 @@ def km_graph_editor(params):
{"properties": [("mode", 'TIME_EXTEND')]}),
("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
- {"properties": [("data_path", 'tool_settings.use_proportional_fcurve')]}),
- op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
- op_menu_pie("GRAPH_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ *_template_items_proportional_editing(
+ params, connected=False, toggle_data_path='tool_settings.use_proportional_fcurve'),
("marker.add", {"type": 'M', "value": 'PRESS'}, None),
("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
*_template_items_context_menu("GRAPH_MT_context_menu", params.context_menu_event),
])
+ if not params.legacy:
+ items.extend([
+ op_menu_pie("GRAPH_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ ])
+ else:
+ items.extend([
+ # Old pivot.
+ ("wm.context_set_enum", {"type": 'COMMA', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'BOUNDING_BOX_CENTER')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'CURSOR')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'INDIVIDUAL_ORIGINS')]}),
+ ])
+
if params.select_mouse == 'LEFTMOUSE' and not params.legacy:
items.extend([
("graph.cursor_set", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True}, None),
@@ -1609,7 +1642,7 @@ def km_graph_editor(params):
return keymap
-def km_image_generic(_params):
+def km_image_generic(params):
items = []
keymap = (
"Image Generic",
@@ -1627,12 +1660,20 @@ def km_image_generic(_params):
("image.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
("image.read_viewlayers", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
("image.save", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("image.save_as", {"type": 'S', "value": 'PRESS', "shift": True, "alt": True}, None),
("image.cycle_render_slot", {"type": 'J', "value": 'PRESS', "repeat": True}, None),
("image.cycle_render_slot", {"type": 'J', "value": 'PRESS', "alt": True, "repeat": True},
{"properties": [("reverse", True)]}),
])
+ if not params.legacy:
+ items.extend([
+ ("image.save_as", {"type": 'S', "value": 'PRESS', "shift": True, "alt": True}, None),
+ ])
+ else:
+ items.extend([
+ ("image.save_as", {"type": 'F3', "value": 'PRESS'}, None),
+ ])
+
return keymap
@@ -1697,14 +1738,25 @@ def km_image(params):
for i in range(9)
)
),
- op_menu_pie("IMAGE_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
("image.render_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
("image.clear_render_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None),
*_template_items_context_menu("IMAGE_MT_mask_context_menu", params.context_menu_event),
])
- if params.legacy:
+ if not params.legacy:
items.extend([
+ op_menu_pie("IMAGE_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ ])
+ else:
+ items.extend([
+ # Old pivot.
+ ("wm.context_set_enum", {"type": 'COMMA', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'CENTER')]}),
+ ("wm.context_set_enum", {"type": 'COMMA', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'MEDIAN')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'CURSOR')]}),
+
("image.view_center_cursor", {"type": 'HOME', "value": 'PRESS', "alt": True}, None),
])
@@ -1758,11 +1810,20 @@ def km_node_editor(params):
]
# Allow node selection with both for RMB select
- if params.select_mouse == 'RIGHTMOUSE':
- items.extend(node_select_ops('LEFTMOUSE'))
- items.extend(node_select_ops('RIGHTMOUSE'))
+ if not params.legacy:
+ if params.select_mouse == 'RIGHTMOUSE':
+ items.extend(node_select_ops('LEFTMOUSE'))
+ items.extend(node_select_ops('RIGHTMOUSE'))
+ else:
+ items.extend(node_select_ops('LEFTMOUSE'))
else:
- items.extend(node_select_ops('LEFTMOUSE'))
+ items.extend(node_select_ops('RIGHTMOUSE'))
+ items.extend([
+ ("node.select", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("extend", False), ("deselect_all", False)]}),
+ ("node.select", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ])
items.extend([
("node.select_box", {"type": params.select_tweak, "value": 'ANY'},
@@ -1777,8 +1838,8 @@ def km_node_editor(params):
("node.link", {"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True},
{"properties": [("detach", True)]}),
("node.resize", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
- ("node.add_reroute", {"type": 'EVT_TWEAK_R', "value": 'ANY', "shift": True}, None),
- ("node.links_cut", {"type": 'EVT_TWEAK_R', "value": 'ANY', "ctrl": True}, None),
+ ("node.add_reroute", {"type": 'EVT_TWEAK_L' if params.legacy else 'EVT_TWEAK_R', "value": 'ANY', "shift": True}, None),
+ ("node.links_cut", {"type": 'EVT_TWEAK_L' if params.legacy else 'EVT_TWEAK_R', "value": 'ANY', "ctrl": True}, None),
("node.select_link_viewer", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
("node.backimage_move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "alt": True}, None),
("node.backimage_zoom", {"type": 'V', "value": 'PRESS', "repeat": True},
@@ -2104,7 +2165,11 @@ def km_dopesheet(params):
("action.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None),
("action.select_linked", {"type": 'L', "value": 'PRESS'}, None),
("action.frame_jump", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- op_menu_pie("DOPESHEET_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ (
+ op_menu_pie("DOPESHEET_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True})
+ if not params.legacy else
+ ("action.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None)
+ ),
("action.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
("action.handle_type", {"type": 'V', "value": 'PRESS'}, None),
("action.interpolation_type", {"type": 'T', "value": 'PRESS'}, None),
@@ -2113,7 +2178,7 @@ def km_dopesheet(params):
("action.keyframe_type", {"type": 'R', "value": 'PRESS'}, None),
("action.sample", {"type": 'O', "value": 'PRESS', "shift": True, "alt": True}, None),
op_menu("DOPESHEET_MT_delete", {"type": 'X', "value": 'PRESS'}),
- op_menu("DOPESHEET_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("action.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
("action.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
("action.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
("action.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
@@ -2137,9 +2202,8 @@ def km_dopesheet(params):
{"properties": [("mode", 'TIME_SCALE')]}),
("transform.transform", {"type": 'T', "value": 'PRESS', "shift": True},
{"properties": [("mode", 'TIME_SLIDE')]}),
- ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
- {"properties": [("data_path", 'tool_settings.use_proportional_action')]}),
- op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ *_template_items_proportional_editing(
+ params, connected=False, toggle_data_path='tool_settings.use_proportional_action'),
("marker.add", {"type": 'M', "value": 'PRESS'}, None),
("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
("marker.camera_bind", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
@@ -2257,7 +2321,11 @@ def km_nla_editor(params):
("nla.move_down", {"type": 'PAGE_DOWN', "value": 'PRESS', "repeat": True}, None),
("nla.apply_scale", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
("nla.clear_scale", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- op_menu_pie("NLA_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ (
+ op_menu_pie("NLA_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True})
+ if not params.legacy else
+ ("nla.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None)
+ ),
("nla.fmodifier_add", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None),
("transform.transform", {"type": 'G', "value": 'PRESS'},
{"properties": [("mode", 'TRANSLATION')]}),
@@ -2488,8 +2556,8 @@ def km_sequencer(params):
{"properties": [("unselected", False)]}),
("sequencer.unmute", {"type": 'H', "value": 'PRESS', "shift": True, "alt": True},
{"properties": [("unselected", True)]}),
- ("sequencer.lock", {"type": 'L', "value": 'PRESS', "shift": True}, None),
- ("sequencer.unlock", {"type": 'L', "value": 'PRESS', "shift": True, "alt": True}, None),
+ ("sequencer.lock", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
+ ("sequencer.unlock", {"type": 'H', "value": 'PRESS', "ctrl": True, "alt": True}, None),
("sequencer.reassign_inputs", {"type": 'R', "value": 'PRESS'}, None),
("sequencer.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
("sequencer.reload", {"type": 'R', "value": 'PRESS', "shift": True, "alt": True},
@@ -2826,14 +2894,25 @@ def km_clip_editor(params):
("clip.clear_track_path", {"type": 'T', "value": 'PRESS', "shift": True, "alt": True},
{"properties": [("action", 'ALL'), ("clear_active", False)]}),
("clip.cursor_set", params.cursor_set_event, None),
- op_menu_pie("CLIP_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
("clip.copy_tracks", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
("clip.paste_tracks", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
*_template_items_context_menu("CLIP_MT_tracking_context_menu", params.context_menu_event),
])
- if params.legacy:
+ if not params.legacy:
+ op_menu_pie("CLIP_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ else:
items.extend([
+ # Old pivot.
+ ("wm.context_set_enum", {"type": 'COMMA', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'BOUNDING_BOX_CENTER')]}),
+ ("wm.context_set_enum", {"type": 'COMMA', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'MEDIAN_POINT')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'CURSOR')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'INDIVIDUAL_ORIGINS')]}),
+
("clip.view_center_cursor", {"type": 'HOME', "value": 'PRESS', "alt": True}, None),
])
@@ -3201,7 +3280,11 @@ def km_grease_pencil_stroke_edit_mode(params):
("gpencil.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
("gpencil.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
# Snap
- op_menu_pie("GPENCIL_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ (
+ op_menu_pie("GPENCIL_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True})
+ if not params.legacy else
+ op_menu("GPENCIL_MT_snap", {"type": 'S', "value": 'PRESS', "shift": True})
+ ),
# Show/hide
("gpencil.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
("gpencil.hide", {"type": 'H', "value": 'PRESS'},
@@ -3229,7 +3312,8 @@ def km_grease_pencil_stroke_edit_mode(params):
("transform.transform", {"type": 'F', "value": 'PRESS', "shift": True},
{"properties": [("mode", 'GPENCIL_OPACITY')]}),
# Proportional editing.
- *_template_items_proportional_editing(connected=True),
+ *_template_items_proportional_editing(
+ params, connected=True, toggle_data_path='tool_settings.use_proportional_edit'),
# Curve edit mode toggle.
("wm.context_toggle", {"type": 'U', "value": 'PRESS'},
{"properties": [("data_path", 'gpencil_data.use_curve_edit')]}),
@@ -3994,9 +4078,8 @@ def km_object_mode(params):
)
items.extend([
- op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
- ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
- {"properties": [("data_path", 'tool_settings.use_proportional_edit_objects')]}),
+ *_template_items_proportional_editing(
+ params, connected=False, toggle_data_path='tool_settings.use_proportional_edit_objects'),
*_template_items_select_actions(params, "object.select_all"),
("object.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None),
("object.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None),
@@ -4160,7 +4243,8 @@ def km_curve(params):
("curve.normals_make_consistent", {"type": 'N', "value": 'PRESS', "ctrl" if params.legacy else "shift": True}, None),
("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
op_menu("VIEW3D_MT_hook", {"type": 'H', "value": 'PRESS', "ctrl": True}),
- *_template_items_proportional_editing(connected=True),
+ *_template_items_proportional_editing(
+ params, connected=True, toggle_data_path='tool_settings.use_proportional_edit'),
*_template_items_context_menu("VIEW3D_MT_edit_curve_context_menu", params.context_menu_event),
])
@@ -4396,9 +4480,9 @@ def km_sculpt(params):
("sculpt.mask_expand", {"type": 'W', "value": 'PRESS', "shift": True},
{"properties": [("use_normals", False), ("keep_previous_mask", False), ("invert", False), ("smooth_iterations", 0), ("create_face_set", True)]}),
("sculpt.face_set_edit", {"type": 'W', "value": 'PRESS', "ctrl": True},
- {"properties": [("mode", "GROW")]}),
+ {"properties": [("mode", 'GROW')]}),
("sculpt.face_set_edit", {"type": 'W', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties": [("mode", "SHRINK")]}),
+ {"properties": [("mode", 'SHRINK')]}),
# Subdivision levels
*_template_items_object_subdivision_set(),
("object.subdivision_set", {"type": 'PAGE_UP', "value": 'PRESS', "repeat": True},
@@ -4566,7 +4650,7 @@ def km_mesh(params):
op_menu("VIEW3D_MT_edit_mesh_merge", {"type": 'M', "value": 'PRESS'}),
op_menu("VIEW3D_MT_edit_mesh_split", {"type": 'M', "value": 'PRESS', "alt": True}),
("transform.shrink_fatten", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("mesh.edge_face_add", {"type": 'F', "value": 'PRESS'}, None),
+ ("mesh.edge_face_add", {"type": 'F', "value": 'PRESS', "repeat": True}, None),
("mesh.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
op_menu("VIEW3D_MT_mesh_add", {"type": 'A', "value": 'PRESS', "shift": True}),
("mesh.separate", {"type": 'P', "value": 'PRESS'}, None),
@@ -4596,7 +4680,8 @@ def km_mesh(params):
op_menu("VIEW3D_MT_vertex_group", {"type": 'G', "value": 'PRESS', "ctrl": True}),
op_menu("VIEW3D_MT_edit_mesh_normals", {"type": 'N', "value": 'PRESS', "alt": True}),
("object.vertex_group_remove_from", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- *_template_items_proportional_editing(connected=True),
+ *_template_items_proportional_editing(
+ params, connected=True, toggle_data_path='tool_settings.use_proportional_edit'),
*_template_items_context_menu("VIEW3D_MT_edit_mesh_context_menu", params.context_menu_event),
])
@@ -4728,7 +4813,8 @@ def km_metaball(params):
("mball.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
*_template_items_select_actions(params, "mball.select_all"),
("mball.select_similar", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- *_template_items_proportional_editing(connected=True),
+ *_template_items_proportional_editing(
+ params, connected=True, toggle_data_path='tool_settings.use_proportional_edit'),
*_template_items_context_menu("VIEW3D_MT_edit_metaball_context_menu", params.context_menu_event),
])
@@ -4751,7 +4837,8 @@ def km_lattice(params):
("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
("lattice.flip", {"type": 'F', "value": 'PRESS', "alt": True}, None),
op_menu("VIEW3D_MT_hook", {"type": 'H', "value": 'PRESS', "ctrl": True}),
- *_template_items_proportional_editing(connected=False),
+ *_template_items_proportional_editing(
+ params, connected=False, toggle_data_path='tool_settings.use_proportional_edit'),
*_template_items_context_menu("VIEW3D_MT_edit_lattice_context_menu", params.context_menu_event),
])
@@ -4797,7 +4884,8 @@ def km_particle(params):
for i, value in enumerate(('PATH', 'POINT', 'TIP'))
)
),
- *_template_items_proportional_editing(connected=False),
+ *_template_items_proportional_editing(
+ params, connected=False, toggle_data_path='tool_settings.use_proportional_edit'),
*_template_items_context_menu("VIEW3D_MT_particle_context_menu", params.context_menu_event),
])
@@ -5048,10 +5136,10 @@ def km_transform_modal_map(_params):
return keymap
-def km_view3d_interactive_add_tool_modal_map(_params):
+def km_view3d_interactive_add_tool_modal(_params):
items = []
keymap = (
- "View3D Placement Modal Map",
+ "View3D Placement Modal",
{"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
{"items": items},
)
@@ -6958,7 +7046,7 @@ def generate_keymaps(params=None):
km_eyedropper_modal_map(params),
km_eyedropper_colorramp_pointsampling_map(params),
km_transform_modal_map(params),
- km_view3d_interactive_add_tool_modal_map(params),
+ km_view3d_interactive_add_tool_modal(params),
km_view3d_gesture_circle(params),
km_gesture_border(params),
km_gesture_zoom_border(params),
diff --git a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
index 4b8a470a3ae..4cffb6805a0 100644
--- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
+++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
@@ -494,9 +494,9 @@ def km_outliner(params):
{"properties": [("extend", True), ("extend_range", True), ("deselect_all", True)]}),
("outliner.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, {"properties": [("tweak", True)]}),
("outliner.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True},
- {"properties": [("tweak", True), ("mode", "ADD")]}),
+ {"properties": [("tweak", True), ("mode", 'ADD')]}),
("outliner.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True},
- {"properties": [("tweak", True), ("mode", "SUB")]}),
+ {"properties": [("tweak", True), ("mode", 'SUB')]}),
("outliner.select_walk", {"type": 'UP_ARROW', "value": 'PRESS', "repeat": True},
{"properties": [("direction", 'UP')]}),
("outliner.select_walk", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "repeat": True},
@@ -586,7 +586,7 @@ def km_uv_editor(params):
("uv.select", {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True},
{"properties": [("extend", True), ("deselect_all", False)]}),
- ("transform.translate", {"type": "EVT_TWEAK_L", "value": 'ANY'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
("uv.select_loop", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK', "shift": True},
{"properties": [("extend", True)]}),
("uv.select_loop", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'},
@@ -929,7 +929,7 @@ def km_graph_editor(params):
("graph.select_less", {"type": 'DOWN_ARROW', "value": 'PRESS', "repeat": True}, None),
("graph.select_linked", {"type": 'RIGHT_BRACKET', "value": 'PRESS'}, None),
op_menu("GRAPH_MT_delete", {"type": 'BACK_SPACE', "value": 'PRESS'}),
- op_menu("GRAPH_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("graph.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
*_template_items_context_menu("GRAPH_MT_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}),
("graph.duplicate_move", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
("graph.keyframe_insert", {"type": 'S', "value": 'PRESS'}, None),
@@ -1416,7 +1416,7 @@ def km_dopesheet(params):
op_menu_pie("DOPESHEET_MT_snap_pie", {"type": 'X', "value": 'PRESS', "shift": True}),
*_template_items_context_menu("DOPESHEET_MT_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}),
op_menu("DOPESHEET_MT_delete", {"type": 'BACK_SPACE', "value": 'PRESS'}),
- op_menu("DOPESHEET_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("action.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
("action.duplicate_move", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
("action.keyframe_insert", {"type": 'S', "value": 'PRESS'}, None),
("action.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
@@ -2277,7 +2277,7 @@ def km_grease_pencil(_params):
def _grease_pencil_selection(params):
return [
- ("gpencil.select", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ ("gpencil.select", {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True},
{"properties": [("extend", True), ("toggle", True)]}),
# Select all
("gpencil.select_all", {"type": 'A', "value": 'PRESS', "ctrl": True}, {"properties": [("action", 'SELECT')]}),
@@ -3997,6 +3997,19 @@ def km_3d_view_tool_edit_gpencil_select(params):
)
+def km_3d_view_tool_interactive_add(params):
+ return (
+ "3D View Tool: Object, Add Primitive",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": [
+ ("view3d.interactive_add", {"type": params.tool_tweak, "value": 'ANY'},
+ {"properties": [("wait_for_input", False)]}),
+ ("view3d.interactive_add", {"type": params.tool_tweak, "value": 'ANY', "ctrl": True},
+ {"properties": [("wait_for_input", False)]}),
+ ]},
+ )
+
+
# Fallback for gizmos that don't have custom a custom key-map.
@@ -4135,6 +4148,7 @@ def generate_keymaps_impl(params=None):
km_3d_view_tool_select(params),
km_image_editor_tool_uv_select(params),
km_3d_view_tool_edit_gpencil_select(params),
+ km_3d_view_tool_interactive_add(params),
]
diff --git a/release/scripts/startup/bl_operators/geometry_nodes.py b/release/scripts/startup/bl_operators/geometry_nodes.py
index 12cb9473b64..9652f23aadb 100644
--- a/release/scripts/startup/bl_operators/geometry_nodes.py
+++ b/release/scripts/startup/bl_operators/geometry_nodes.py
@@ -27,6 +27,9 @@ def geometry_node_group_empty_new(context):
output_node = group.nodes.new('NodeGroupOutput')
output_node.is_active_output = True
+ input_node.select = False
+ output_node.select = False
+
input_node.location.x = -200 - input_node.width
output_node.location.x = 200
@@ -38,8 +41,8 @@ def geometry_node_group_empty_new(context):
def geometry_modifier_poll(context) -> bool:
ob = context.object
- # Test object support for geometry node modifier (No volume or hair object support yet)
- if not ob or ob.type not in {'MESH', 'CURVE', 'SURFACE', 'META', 'FONT', 'POINTCLOUD'}:
+ # Test object support for geometry node modifier (No volume, curve, or hair object support yet)
+ if not ob or ob.type not in {'MESH', 'POINTCLOUD'}:
return False
return True
@@ -62,9 +65,6 @@ class NewGeometryNodesModifier(bpy.types.Operator):
if not modifier:
return {'CANCELLED'}
- group = geometry_node_group_empty_new(context)
- modifier.node_group = group
-
return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/userpref.py b/release/scripts/startup/bl_operators/userpref.py
index 9adb518ff55..0cd97ca6a9e 100644
--- a/release/scripts/startup/bl_operators/userpref.py
+++ b/release/scripts/startup/bl_operators/userpref.py
@@ -969,9 +969,9 @@ class PREFERENCES_OT_app_template_install(Operator):
# Studio Light Operations
class PREFERENCES_OT_studiolight_install(Operator):
- """Install a user defined studio light"""
+ """Install a user defined light"""
bl_idname = "preferences.studiolight_install"
- bl_label = "Install Custom Studio Light"
+ bl_label = "Install Light"
files: CollectionProperty(
name="File Path",
@@ -981,7 +981,7 @@ class PREFERENCES_OT_studiolight_install(Operator):
subtype='DIR_PATH',
)
filter_folder: BoolProperty(
- name="Filter folders",
+ name="Filter Folders",
default=True,
options={'HIDDEN'},
)
@@ -992,9 +992,9 @@ class PREFERENCES_OT_studiolight_install(Operator):
type: EnumProperty(
name="Type",
items=(
- ('MATCAP', "MatCap", ""),
- ('WORLD', "World", ""),
- ('STUDIO', "Studio", ""),
+ ('MATCAP', "MatCap", "Install custom MatCaps"),
+ ('WORLD', "World", "Install custom HDRIs"),
+ ('STUDIO', "Studio", "Install custom Studio Lights"),
)
)
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 350d9391acf..2ee20e08589 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -33,11 +33,6 @@ from bpy.props import (
)
from bpy.app.translations import pgettext_iface as iface_
-# FIXME, we need a way to detect key repeat events.
-# unfortunately checking event previous values isn't reliable.
-use_toolbar_release_hack = True
-
-
rna_path_prop = StringProperty(
name="Context Attributes",
description="RNA context string",
@@ -48,18 +43,21 @@ rna_reverse_prop = BoolProperty(
name="Reverse",
description="Cycle backwards",
default=False,
+ options={'SKIP_SAVE'},
)
rna_wrap_prop = BoolProperty(
name="Wrap",
description="Wrap back to the first/last values",
default=False,
+ options={'SKIP_SAVE'},
)
rna_relative_prop = BoolProperty(
name="Relative",
description="Apply relative to the current value (delta)",
default=False,
+ options={'SKIP_SAVE'},
)
rna_space_type_prop = EnumProperty(
@@ -233,6 +231,7 @@ class WM_OT_context_scale_int(Operator):
name="Always Step",
description="Always adjust the value by a minimum of 1 when 'value' is not 1.0",
default=True,
+ options={'SKIP_SAVE'},
)
def execute(self, context):
@@ -741,10 +740,12 @@ class WM_OT_context_modal_mouse(Operator):
input_scale: FloatProperty(
description="Scale the mouse movement by this value before applying the delta",
default=0.01,
+ options={'SKIP_SAVE'},
)
invert: BoolProperty(
description="Invert the mouse input",
default=False,
+ options={'SKIP_SAVE'},
)
initial_x: IntProperty(options={'HIDDEN'})
@@ -974,7 +975,7 @@ class WM_OT_path_open(Operator):
return {'FINISHED'}
-def _wm_doc_get_id(doc_id, do_url=True, url_prefix=""):
+def _wm_doc_get_id(doc_id, do_url=True, url_prefix="", report=None):
def operator_exists_pair(a, b):
# Not fast, this is only for docs.
@@ -1025,6 +1026,11 @@ def _wm_doc_get_id(doc_id, do_url=True, url_prefix=""):
# Check class for dynamically registered types.
rna_class = bpy.types.PropertyGroup.bl_rna_get_subclass_py(class_name)
+ if rna_class is None:
+ if report is not None:
+ report({'ERROR'}, iface_("Type \"%s\" can not be found") % class_name)
+ return None
+
# Detect if this is a inherited member and use that name instead.
rna_parent = rna_class.bl_rna
rna_prop = rna_parent.properties.get(class_prop)
@@ -1084,9 +1090,9 @@ class WM_OT_doc_view_manual(Operator):
return url
def execute(self, _context):
- rna_id = _wm_doc_get_id(self.doc_id, do_url=False)
+ rna_id = _wm_doc_get_id(self.doc_id, do_url=False, report=self.report)
if rna_id is None:
- return {'PASS_THROUGH'}
+ return {'CANCELLED'}
url = self._lookup_rna_url(rna_id)
@@ -1118,9 +1124,9 @@ class WM_OT_doc_view(Operator):
_prefix = ("https://docs.blender.org/api/master")
def execute(self, _context):
- url = _wm_doc_get_id(self.doc_id, do_url=True, url_prefix=self._prefix)
+ url = _wm_doc_get_id(self.doc_id, do_url=True, url_prefix=self._prefix, report=self.report)
if url is None:
- return {'PASS_THROUGH'}
+ return {'CANCELLED'}
import webbrowser
webbrowser.open(url)
@@ -1687,18 +1693,6 @@ class WM_OT_tool_set_by_id(Operator):
space_type: rna_space_type_prop
- if use_toolbar_release_hack:
- def invoke(self, context, event):
- # Hack :S
- if not self.properties.is_property_set("name"):
- WM_OT_toolbar._key_held = False
- return {'PASS_THROUGH'}
- elif (WM_OT_toolbar._key_held == event.type) and (event.value != 'RELEASE'):
- return {'PASS_THROUGH'}
- WM_OT_toolbar._key_held = None
-
- return self.execute(context)
-
def execute(self, context):
from bl_ui.space_toolsystem_common import (
activate_by_id,
@@ -1739,6 +1733,7 @@ class WM_OT_tool_set_by_index(Operator):
expand: BoolProperty(
description="Include tool subgroups",
default=True,
+ options={'SKIP_SAVE'},
)
as_fallback: BoolProperty(
@@ -1789,13 +1784,6 @@ class WM_OT_toolbar(Operator):
def poll(cls, context):
return context.space_data is not None
- if use_toolbar_release_hack:
- _key_held = None
-
- def invoke(self, context, event):
- WM_OT_toolbar._key_held = event.type
- return self.execute(context)
-
@staticmethod
def keymap_from_toolbar(context, space_type, use_fallback_keys=True, use_reset=True):
from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
diff --git a/release/scripts/startup/bl_ui/properties_constraint.py b/release/scripts/startup/bl_ui/properties_constraint.py
index 71a7b056d07..37a2b6a38e4 100644
--- a/release/scripts/startup/bl_ui/properties_constraint.py
+++ b/release/scripts/startup/bl_ui/properties_constraint.py
@@ -225,7 +225,7 @@ class ConstraintButtonsPanel(Panel):
sub.active = con.use_limit_x
sub.prop(con, "min_x", text="Min")
sub.prop(con, "max_x", text="Max")
- row.label(icon="BLANK1")
+ row.label(icon='BLANK1')
row = layout.row(heading="Y", align=True)
row.use_property_decorate = False
@@ -234,7 +234,7 @@ class ConstraintButtonsPanel(Panel):
sub.active = con.use_limit_y
sub.prop(con, "min_y", text="Min")
sub.prop(con, "max_y", text="Max")
- row.label(icon="BLANK1")
+ row.label(icon='BLANK1')
row = layout.row(heading="Z", align=True)
row.use_property_decorate = False
@@ -243,7 +243,7 @@ class ConstraintButtonsPanel(Panel):
sub.active = con.use_limit_z
sub.prop(con, "min_z", text="Min")
sub.prop(con, "max_z", text="Max")
- row.label(icon="BLANK1")
+ row.label(icon='BLANK1')
layout.prop(con, "use_transform_limit")
self.space_template(layout, con, target=False, owner=True)
@@ -556,7 +556,7 @@ class ConstraintButtonsPanel(Panel):
row = layout.row()
row.prop(con, "distance")
- row.operator("constraint.limitdistance_reset", text="", icon="X")
+ row.operator("constraint.limitdistance_reset", text="", icon='X')
layout.prop(con, "limit_mode", text="Clamp Region")
@@ -576,7 +576,7 @@ class ConstraintButtonsPanel(Panel):
row = layout.row()
row.prop(con, "rest_length")
- row.operator("constraint.stretchto_reset", text="", icon="X")
+ row.operator("constraint.stretchto_reset", text="", icon='X')
layout.separator()
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index 05abfa02500..4cdcab45926 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -133,7 +133,6 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
)
col = row.column(align=True)
- col.active = (ob.proxy is None)
col.operator("pose.group_add", icon='ADD', text="")
col.operator("pose.group_remove", icon='REMOVE', text="")
col.menu("DATA_MT_bone_group_context_menu", icon='DOWNARROW_HLT', text="")
@@ -156,7 +155,6 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
sub.prop(group.colors, "active", text="")
row = layout.row()
- row.active = (ob.proxy is None)
sub = row.row(align=True)
sub.operator("pose.group_assign", text="Assign")
diff --git a/release/scripts/startup/bl_ui/properties_data_gpencil.py b/release/scripts/startup/bl_ui/properties_data_gpencil.py
index 351d4928ddf..9db6eedb04c 100644
--- a/release/scripts/startup/bl_ui/properties_data_gpencil.py
+++ b/release/scripts/startup/bl_ui/properties_data_gpencil.py
@@ -23,6 +23,7 @@ from rna_prop_ui import PropertyPanel
from bl_ui.properties_grease_pencil_common import (
GreasePencilLayerMasksPanel,
+ GreasePencilLayerTransformPanel,
GreasePencilLayerAdjustmentsPanel,
GreasePencilLayerRelationsPanel,
GreasePencilLayerDisplayPanel,
@@ -90,8 +91,10 @@ class GPENCIL_MT_layer_context_menu(Menu):
layout = self.layout
ob = context.object
gpd = ob.data
+ gpl = gpd.layers.active
- layout.operator("gpencil.layer_duplicate", icon='DUPLICATE')
+ layout.operator("gpencil.layer_duplicate", text="Duplicate", icon='DUPLICATE').mode='ALL'
+ layout.operator("gpencil.layer_duplicate", text="Duplicate Empty Keyframes").mode='EMPTY'
layout.separator()
@@ -103,6 +106,7 @@ class GPENCIL_MT_layer_context_menu(Menu):
layout.operator("gpencil.lock_all", icon='LOCKED', text="Lock All")
layout.operator("gpencil.unlock_all", icon='UNLOCKED', text="Unlock All")
layout.prop(gpd, "use_autolock_layers", text="Autolock Inactive Layers")
+ layout.prop(gpl, "lock_material")
layout.separator()
@@ -188,6 +192,12 @@ class DATA_PT_gpencil_layer_masks(LayerDataButtonsPanel, GreasePencilLayerMasksP
bl_options = {'DEFAULT_CLOSED'}
+class DATA_PT_gpencil_layer_transform(LayerDataButtonsPanel, GreasePencilLayerTransformPanel, Panel):
+ bl_label = "Transform"
+ bl_parent_id = 'DATA_PT_gpencil_layers'
+ bl_options = {'DEFAULT_CLOSED'}
+
+
class DATA_PT_gpencil_layer_adjustments(LayerDataButtonsPanel, GreasePencilLayerAdjustmentsPanel, Panel):
bl_label = "Adjustments"
bl_parent_id = 'DATA_PT_gpencil_layers'
@@ -424,6 +434,7 @@ classes = (
DATA_PT_gpencil_onion_skinning_custom_colors,
DATA_PT_gpencil_onion_skinning_display,
DATA_PT_gpencil_layer_masks,
+ DATA_PT_gpencil_layer_transform,
DATA_PT_gpencil_layer_adjustments,
DATA_PT_gpencil_layer_relations,
DATA_PT_gpencil_layer_display,
diff --git a/release/scripts/startup/bl_ui/properties_data_volume.py b/release/scripts/startup/bl_ui/properties_data_volume.py
index d4f108dcf24..e7bf9adb876 100644
--- a/release/scripts/startup/bl_ui/properties_data_volume.py
+++ b/release/scripts/startup/bl_ui/properties_data_volume.py
@@ -63,7 +63,7 @@ class DATA_PT_volume_file(DataButtonsPanel, Panel):
layout.prop(volume, "filepath", text="")
- if len(volume.filepath):
+ if volume.filepath:
layout.use_property_split = True
layout.use_property_decorate = False
@@ -76,7 +76,7 @@ class DATA_PT_volume_file(DataButtonsPanel, Panel):
col.prop(volume, "sequence_mode", text="Mode")
error_msg = volume.grids.error_message
- if len(error_msg):
+ if error_msg:
layout.separator()
col = layout.column(align=True)
col.label(text="Failed to load volume:")
diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
index 80e5b49f4fe..67905192fe8 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -592,7 +592,7 @@ class GreasePencilMaterialsPanel:
if show_full_ui:
row = layout.row()
- row.template_ID(ob, "active_material", new="material.new", duplicate="material.duplicate", live_icon=True)
+ row.template_ID(ob, "active_material", new="material.new", live_icon=True)
slot = context.material_slot
if slot:
@@ -727,12 +727,32 @@ class GreasePencilSimplifyPanel:
col.prop(rd, "simplify_gpencil_antialiasing")
+class GreasePencilLayerTransformPanel:
+
+ def draw(self, context):
+ layout = self.layout
+ layout.use_property_split = True
+
+ ob = context.object
+ gpd = ob.data
+ gpl = gpd.layers.active
+ layout.active = not gpl.lock
+
+ row = layout.row(align=True)
+ row.prop(gpl, "location")
+
+ row = layout.row(align=True)
+ row.prop(gpl, "rotation")
+
+ row = layout.row(align=True)
+ row.prop(gpl, "scale")
+
+
class GreasePencilLayerAdjustmentsPanel:
def draw(self, context):
layout = self.layout
layout.use_property_split = True
- scene = context.scene
ob = context.object
gpd = ob.data
@@ -750,15 +770,6 @@ class GreasePencilLayerAdjustmentsPanel:
col = layout.row(align=True)
col.prop(gpl, "line_change", text="Stroke Thickness")
- col = layout.row(align=True)
- col.prop(gpl, "pass_index")
-
- col = layout.row(align=True)
- col.prop_search(gpl, "viewlayer_render", scene, "view_layers", text="View Layer")
-
- col = layout.row(align=True)
- col.prop(gpl, "lock_material")
-
class GPENCIL_UL_masks(UIList):
def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index):
@@ -826,6 +837,7 @@ class GreasePencilLayerRelationsPanel:
layout.use_property_split = True
layout.use_property_decorate = False
+ scene = context.scene
ob = context.object
gpd = ob.data
gpl = gpd.layers.active
@@ -839,6 +851,14 @@ class GreasePencilLayerRelationsPanel:
if parent and gpl.parent_type == 'BONE' and parent.type == 'ARMATURE':
col.prop_search(gpl, "parent_bone", parent.data, "bones", text="Bone")
+ layout.separator()
+
+ col = layout.row(align=True)
+ col.prop(gpl, "pass_index")
+
+ col = layout.row(align=True)
+ col.prop_search(gpl, "viewlayer_render", scene, "view_layers", text="View Layer")
+
class GreasePencilLayerDisplayPanel:
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index e1f2862f826..47ab98386f4 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -133,7 +133,7 @@ class EEVEE_MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
row = layout.row()
if ob:
- row.template_ID(ob, "active_material", new="material.new", duplicate="material.duplicate")
+ row.template_ID(ob, "active_material", new="material.new")
if slot:
icon_link = 'MESH_DATA' if slot.link == 'DATA' else 'OBJECT_DATA'
diff --git a/release/scripts/startup/bl_ui/properties_physics_cloth.py b/release/scripts/startup/bl_ui/properties_physics_cloth.py
index 79089b7cb89..3a5ca1e04f5 100644
--- a/release/scripts/startup/bl_ui/properties_physics_cloth.py
+++ b/release/scripts/startup/bl_ui/properties_physics_cloth.py
@@ -345,6 +345,7 @@ class PHYSICS_PT_cloth_object_collision(PhysicButtonsPanel, Panel):
cloth = context.cloth.collision_settings
md = context.cloth
+ ob = context.object
layout.active = cloth.use_collision and cloth_panel_enabled(md)
@@ -357,6 +358,9 @@ class PHYSICS_PT_cloth_object_collision(PhysicButtonsPanel, Panel):
col.prop(cloth, "impulse_clamp")
col = flow.column()
+ col.prop_search(cloth, "vertex_group_object_collisions", ob, "vertex_groups", text="Vertex Group")
+
+ col = flow.column()
col.prop(cloth, "collection")
diff --git a/release/scripts/startup/bl_ui/properties_physics_common.py b/release/scripts/startup/bl_ui/properties_physics_common.py
index 1ffaa47168f..82f43790d72 100644
--- a/release/scripts/startup/bl_ui/properties_physics_common.py
+++ b/release/scripts/startup/bl_ui/properties_physics_common.py
@@ -48,6 +48,7 @@ def physics_add(layout, md, name, type, typeicon, toggles):
if toggles:
row.prop(md, "show_viewport", text="")
row.prop(md, "show_render", text="")
+ return row
else:
row.operator(
"object.modifier_add",
@@ -89,7 +90,10 @@ class PHYSICS_PT_add(PhysicButtonsPanel, Panel):
col.operator("object.forcefield_toggle", text="Force Field", icon='X')
if obj.type == 'MESH':
- physics_add(col, context.collision, "Collision", 'COLLISION', 'MOD_PHYSICS', False)
+ row = physics_add(col, context.collision, "Collision", 'COLLISION', 'MOD_PHYSICS', False)
+ if row and obj.collision:
+ row.prop(obj.collision, "use", text="", icon='HIDE_OFF' if obj.collision.use else 'HIDE_ON')
+
physics_add(col, context.cloth, "Cloth", 'CLOTH', 'MOD_CLOTH', True)
physics_add(col, context.dynamic_paint, "Dynamic Paint", 'DYNAMIC_PAINT', 'MOD_DYNAMICPAINT', True)
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index 6005ac30339..3abaa490d02 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -493,14 +493,12 @@ class RENDER_PT_eevee_film(RenderButtonsPanel, Panel):
col.prop(rd, "film_transparent", text="Transparent")
col = layout.column(align=False, heading="Overscan")
- col.use_property_decorate = False
row = col.row(align=True)
sub = row.row(align=True)
sub.prop(props, "use_overscan", text="")
sub = sub.row(align=True)
sub.active = props.use_overscan
sub.prop(props, "overscan_size", text="")
- row.prop_decorator(props, "overscan_size")
class RENDER_PT_eevee_hair(RenderButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py
index 74293e02b60..9b61311c2d3 100644
--- a/release/scripts/startup/bl_ui/properties_world.py
+++ b/release/scripts/startup/bl_ui/properties_world.py
@@ -51,7 +51,7 @@ class WORLD_PT_context_world(WorldButtonsPanel, Panel):
space = context.space_data
if scene:
- layout.template_ID(scene, "world", new="world.new", duplicate="world.duplicate")
+ layout.template_ID(scene, "world", new="world.new")
elif world:
layout.template_ID(space, "pin_id")
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py
index 35fd7333cf4..96920af1c7e 100644
--- a/release/scripts/startup/bl_ui/space_clip.py
+++ b/release/scripts/startup/bl_ui/space_clip.py
@@ -303,11 +303,11 @@ class CLIP_MT_masking_editor_menus(Menu):
if clip:
layout.menu("MASK_MT_select")
- layout.menu("CLIP_MT_clip") # XXX - remove?
+ layout.menu("CLIP_MT_clip")
layout.menu("MASK_MT_add")
layout.menu("MASK_MT_mask")
else:
- layout.menu("CLIP_MT_clip") # XXX - remove?
+ layout.menu("CLIP_MT_clip")
class CLIP_PT_clip_view_panel:
@@ -502,7 +502,9 @@ class CLIP_PT_tools_tracking(CLIP_PT_tracking_panel, Panel):
col = layout.column(align=True)
row = col.row(align=True)
row.label(text="Merge:")
- row.operator("clip.join_tracks", text="Join Tracks")
+ sub = row.column()
+ sub.operator("clip.join_tracks", text="Join Tracks")
+ sub.operator("clip.average_tracks", text="Average Tracks")
class CLIP_PT_tools_plane_tracking(CLIP_PT_tracking_panel, Panel):
@@ -1330,10 +1332,17 @@ class CLIP_MT_clip(Menu):
layout.operator("clip.open")
if clip:
+ layout.operator("clip.set_scene_frames")
+ layout.operator("clip.set_center_principal")
layout.operator("clip.prefetch")
layout.operator("clip.reload")
layout.menu("CLIP_MT_proxy")
+ layout.separator()
+
+ layout.operator("clip.set_viewport_background")
+ layout.operator("clip.setup_tracking_scene")
+
class CLIP_MT_proxy(Menu):
bl_label = "Proxy"
@@ -1345,65 +1354,161 @@ class CLIP_MT_proxy(Menu):
layout.operator("clip.delete_proxy")
-class CLIP_MT_track(Menu):
- bl_label = "Track"
+class CLIP_MT_track_transform(Menu):
+ bl_label = "Transform"
def draw(self, _context):
layout = self.layout
- layout.operator("clip.clear_solution")
- layout.operator("clip.solve_camera")
+ layout.operator("transform.translate")
+ layout.operator("transform.rotate")
+ layout.operator("transform.resize")
+
- layout.separator()
- props = layout.operator("clip.clear_track_path", text="Clear After")
- props.clear_active = False
- props.action = 'REMAINED'
+class CLIP_MT_track_motion(Menu):
+ bl_label = "Track Motion"
+
+ def draw(self, _context):
+ layout = self.layout
+
+ props = layout.operator("clip.track_markers", text="Backwards")
+ props.backwards = True
+ props.sequence = True
+
+ props = layout.operator("clip.track_markers", text="Frame Backwards")
+ props.backwards = True
+ props.sequence = False
+
+ props = layout.operator("clip.track_markers", text="Forwards")
+ props.backwards = False
+ props.sequence = True
+
+ props = layout.operator("clip.track_markers", text="Frame Forwards")
+ props.backwards = False
+ props.sequence = False
+
+
+class CLIP_MT_track_clear(Menu):
+ bl_label = "Clear"
- props = layout.operator("clip.clear_track_path", text="Clear Before")
+ def draw(self, _context):
+ layout = self.layout
+
+ props = layout.operator("clip.clear_track_path", text="Before")
props.clear_active = False
props.action = 'UPTO'
- props = layout.operator("clip.clear_track_path", text="Clear Track Path")
+ props = layout.operator("clip.clear_track_path", text="After")
+ props.clear_active = False
+ props.action = 'REMAINED'
+
+ props = layout.operator("clip.clear_track_path", text="Track Path")
props.clear_active = False
props.action = 'ALL'
layout.separator()
- layout.operator("clip.join_tracks")
- layout.separator()
+ layout.operator("clip.clear_solution", text="Solution")
+
+
+class CLIP_MT_track_refine(Menu):
+ bl_label = "Refine"
+
+ def draw(self, _context):
+ layout = self.layout
+
+ props = layout.operator("clip.refine_markers", text="Backwards")
+ props.backwards = True
+
+ props = layout.operator("clip.refine_markers", text="Forwards")
+ props.backwards = False
+
+
+class CLIP_MT_track_animation(Menu):
+ bl_label = "Animation"
+
+ def draw(self, _context):
+ layout = self.layout
+
+ layout.operator("clip.keyframe_insert")
+ layout.operator("clip.keyframe_delete")
+
+
+class CLIP_MT_track_visibility(Menu):
+ bl_label = "Show/Hide"
+
+ def draw(self, _context):
+ layout = self.layout
+
+ layout.operator("clip.hide_tracks_clear")
+ layout.operator("clip.hide_tracks", text="Hide Selected").unselected = False
+ layout.operator("clip.hide_tracks", text="Hide Unselected").unselected = True
+
+
+class CLIP_MT_track_cleanup(Menu):
+ bl_label = "Clean Up"
+
+ def draw(self, _context):
+ layout = self.layout
+
layout.operator("clip.clean_tracks")
+ layout.operator("clip.filter_tracks")
+
+
+class CLIP_MT_track(Menu):
+ bl_label = "Track"
+
+ def draw(self, context):
+ layout = self.layout
+
+ clip = context.space_data.clip
+ tracking_object = clip.tracking.objects.active
+
+ layout.menu("CLIP_MT_track_transform")
+ layout.menu("CLIP_MT_track_motion")
+ layout.menu("CLIP_MT_track_clear")
+ layout.menu("CLIP_MT_track_refine")
layout.separator()
- layout.operator("clip.copy_tracks")
- layout.operator("clip.paste_tracks")
+
+ layout.operator("clip.add_marker_move", text="Add Marker")
+ layout.operator("clip.detect_features")
+ layout.operator("clip.create_plane_track")
layout.separator()
- props = layout.operator("clip.track_markers", text="Track Frame Backwards")
- props.backwards = True
- props.sequence = False
- props = layout.operator("clip.track_markers", text="Track Backwards")
- props.backwards = True
- props.sequence = True
+ layout.operator("clip.solve_camera",
+ text="Solve Camera Motion" if tracking_object.is_camera
+ else "Solve Object Motion")
- props = layout.operator("clip.track_markers", text="Track Forwards")
- props.backwards = False
- props.sequence = True
+ layout.separator()
- props = layout.operator("clip.track_markers", text="Track Frame Forwards")
- props.backwards = False
- props.sequence = False
+ layout.operator("clip.join_tracks")
+ layout.operator("clip.average_tracks")
layout.separator()
- layout.operator("clip.delete_track")
- layout.operator("clip.delete_marker")
+
+ layout.operator("clip.copy_tracks", icon='COPYDOWN')
+ layout.operator("clip.paste_tracks", icon='PASTEDOWN')
layout.separator()
- layout.operator("clip.add_marker_move")
+
+ layout.operator("clip.track_settings_as_default", text="Copy Settings to Defaults")
+ layout.operator("clip.track_settings_to_track", text="Apply Default Settings")
+
+ layout.separator()
+
+ layout.menu("CLIP_MT_track_animation")
layout.separator()
+
layout.menu("CLIP_MT_track_visibility")
- layout.menu("CLIP_MT_track_transform")
+ layout.menu("CLIP_MT_track_cleanup")
+
+ layout.separator()
+
+ layout.operator("clip.delete_track")
+ layout.operator("clip.delete_marker")
class CLIP_MT_reconstruction(Menu):
@@ -1420,6 +1525,7 @@ class CLIP_MT_reconstruction(Menu):
layout.operator("clip.set_axis", text="Set Y Axis").axis = 'Y'
layout.operator("clip.set_scale")
+ layout.operator("clip.apply_solution_scale")
layout.separator()
@@ -1427,25 +1533,13 @@ class CLIP_MT_reconstruction(Menu):
layout.operator("clip.bundles_to_mesh")
-class CLIP_MT_track_visibility(Menu):
- bl_label = "Show/Hide"
-
- def draw(self, _context):
- layout = self.layout
-
- layout.operator("clip.hide_tracks_clear")
- layout.operator("clip.hide_tracks", text="Hide Selected").unselected = False
- layout.operator("clip.hide_tracks", text="Hide Unselected").unselected = True
-
-
-class CLIP_MT_track_transform(Menu):
- bl_label = "Transform"
+class CLIP_MT_select_grouped(Menu):
+ bl_label = "Select Grouped"
def draw(self, _context):
layout = self.layout
- layout.operator("transform.translate")
- layout.operator("transform.resize")
+ layout.operator_enum("clip.select_grouped", "group")
class CLIP_MT_select(Menu):
@@ -1459,21 +1553,15 @@ class CLIP_MT_select(Menu):
layout.separator()
- layout.operator("clip.select_all"
- ).action = 'TOGGLE'
- layout.operator("clip.select_all",
- text="Inverse").action = 'INVERT'
+ layout.operator("clip.select_all").action = 'TOGGLE'
+ layout.operator("clip.select_all", text="Inverse").action = 'INVERT'
layout.menu("CLIP_MT_select_grouped")
+ layout.separator()
-class CLIP_MT_select_grouped(Menu):
- bl_label = "Select Grouped"
-
- def draw(self, _context):
- layout = self.layout
-
- layout.operator_enum("clip.select_grouped", "group")
+ layout.operator("clip.stabilize_2d_select")
+ layout.operator("clip.stabilize_2d_rotation_select")
class CLIP_MT_tracking_context_menu(Menu):
@@ -1523,6 +1611,7 @@ class CLIP_MT_tracking_context_menu(Menu):
layout.separator()
layout.operator("clip.join_tracks")
+ layout.operator("clip.average_tracks")
layout.separator()
@@ -1746,7 +1835,6 @@ classes = (
CLIP_PT_display,
CLIP_PT_clip_display,
CLIP_PT_marker_display,
- CLIP_MT_track,
CLIP_MT_tracking_editor_menus,
CLIP_MT_masking_editor_menus,
CLIP_PT_track,
@@ -1786,8 +1874,14 @@ classes = (
CLIP_MT_clip,
CLIP_MT_proxy,
CLIP_MT_reconstruction,
- CLIP_MT_track_visibility,
+ CLIP_MT_track,
CLIP_MT_track_transform,
+ CLIP_MT_track_motion,
+ CLIP_MT_track_clear,
+ CLIP_MT_track_refine,
+ CLIP_MT_track_animation,
+ CLIP_MT_track_visibility,
+ CLIP_MT_track_cleanup,
CLIP_MT_select,
CLIP_MT_select_grouped,
CLIP_MT_tracking_context_menu,
diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py
index 3f43240eaed..aa98e4292f4 100644
--- a/release/scripts/startup/bl_ui/space_dopesheet.py
+++ b/release/scripts/startup/bl_ui/space_dopesheet.py
@@ -27,6 +27,7 @@ from bpy.types import (
from bl_ui.properties_grease_pencil_common import (
GreasePencilLayerMasksPanel,
+ GreasePencilLayerTransformPanel,
GreasePencilLayerAdjustmentsPanel,
GreasePencilLayerRelationsPanel,
GreasePencilLayerDisplayPanel,
@@ -248,7 +249,7 @@ class DOPESHEET_HT_editor_buttons:
layout.separator_spacer()
- layout.template_ID(st, "action", new="action.new", duplicate="action.duplicate_assign", unlink="action.unlink")
+ layout.template_ID(st, "action", new="action.new", unlink="action.unlink")
# Layer management
if st.mode == 'GPENCIL':
@@ -726,6 +727,12 @@ class DOPESHEET_PT_gpencil_layer_masks(LayersDopeSheetPanel, GreasePencilLayerMa
bl_options = {'DEFAULT_CLOSED'}
+class DOPESHEET_PT_gpencil_layer_transform(LayersDopeSheetPanel, GreasePencilLayerTransformPanel, Panel):
+ bl_label = "Transform"
+ bl_parent_id = 'DOPESHEET_PT_gpencil_mode'
+ bl_options = {'DEFAULT_CLOSED'}
+
+
class DOPESHEET_PT_gpencil_layer_adjustments(LayersDopeSheetPanel, GreasePencilLayerAdjustmentsPanel, Panel):
bl_label = "Adjustments"
bl_parent_id = 'DOPESHEET_PT_gpencil_mode'
@@ -762,6 +769,7 @@ classes = (
DOPESHEET_PT_filters,
DOPESHEET_PT_gpencil_mode,
DOPESHEET_PT_gpencil_layer_masks,
+ DOPESHEET_PT_gpencil_layer_transform,
DOPESHEET_PT_gpencil_layer_adjustments,
DOPESHEET_PT_gpencil_layer_relations,
DOPESHEET_PT_gpencil_layer_display,
diff --git a/release/scripts/startup/bl_ui/space_filebrowser.py b/release/scripts/startup/bl_ui/space_filebrowser.py
index 91ca193cc01..ef4f47c9399 100644
--- a/release/scripts/startup/bl_ui/space_filebrowser.py
+++ b/release/scripts/startup/bl_ui/space_filebrowser.py
@@ -40,7 +40,7 @@ class FILEBROWSER_HT_header(Header):
row.prop(params, "asset_library", text="")
# External libraries don't auto-refresh, add refresh button.
if params.asset_library != 'LOCAL':
- row.operator("file.refresh", text="", icon="FILE_REFRESH")
+ row.operator("file.refresh", text="", icon='FILE_REFRESH')
layout.separator_spacer()
@@ -197,7 +197,8 @@ class FILEBROWSER_PT_filter(Panel):
sub = row.column(align=True)
- sub.prop(params, "use_filter_asset_only")
+ if context.preferences.experimental.use_asset_browser:
+ sub.prop(params, "use_filter_asset_only")
filter_id = params.filter_id
for identifier in dir(filter_id):
@@ -390,7 +391,8 @@ class FILEBROWSER_PT_advanced_filter(Panel):
layout.separator()
col = layout.column(align=True)
- col.prop(params, "use_filter_asset_only")
+ if context.preferences.experimental.use_asset_browser:
+ col.prop(params, "use_filter_asset_only")
filter_id = params.filter_id
for identifier in dir(filter_id):
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index 0177579c5c2..a9934850acd 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -93,10 +93,10 @@ class NODE_HT_header(Header):
# Show material.new when no active ID/slot exists
if not id_from and ob_type in types_that_support_material:
- row.template_ID(ob, "active_material", new="material.new", duplicate="material.duplicate")
+ row.template_ID(ob, "active_material", new="material.new")
# Material ID, but not for Lights
if id_from and ob_type != 'LIGHT':
- row.template_ID(id_from, "active_material", new="material.new", duplicate="material.duplicate")
+ row.template_ID(id_from, "active_material", new="material.new")
if snode.shader_type == 'WORLD':
NODE_MT_editor_menus.draw_collapsible(context, layout)
@@ -109,7 +109,7 @@ class NODE_HT_header(Header):
row = layout.row()
row.enabled = not snode.pin
- row.template_ID(scene, "world", new="world.new", duplicate="world.duplicate")
+ row.template_ID(scene, "world", new="world.new")
if snode.shader_type == 'LINESTYLE':
view_layer = context.view_layer
@@ -678,16 +678,8 @@ class NODE_UL_interface_sockets(bpy.types.UIList):
if self.layout_type in {'DEFAULT', 'COMPACT'}:
row = layout.row(align=True)
- # inputs get icon on the left
- if not socket.is_output:
- row.template_node_socket(color=color)
-
+ row.template_node_socket(color=color)
row.prop(socket, "name", text="", emboss=False, icon_value=icon)
-
- # outputs get icon on the right
- if socket.is_output:
- row.template_node_socket(color=color)
-
elif self.layout_type == 'GRID':
layout.alignment = 'CENTER'
layout.template_node_socket(color=color)
diff --git a/release/scripts/startup/bl_ui/space_outliner.py b/release/scripts/startup/bl_ui/space_outliner.py
index 1500ae13462..2cb2455ff63 100644
--- a/release/scripts/startup/bl_ui/space_outliner.py
+++ b/release/scripts/startup/bl_ui/space_outliner.py
@@ -375,11 +375,11 @@ class OUTLINER_PT_filter(Panel):
row.label(icon='OBJECT_DATAMODE')
row.prop(space, "use_filter_object", text="Objects")
row = col.row(align=True)
- row.label(icon="BLANK1")
+ row.label(icon='BLANK1')
row.prop(space, "filter_state", text="")
sub = row.row(align=True)
sub.enabled = space.filter_state != 'ALL'
- sub.prop(space, "filter_invert", text="", icon="ARROW_LEFTRIGHT")
+ sub.prop(space, "filter_invert", text="", icon='ARROW_LEFTRIGHT')
sub = col.column(align=True)
sub.active = space.use_filter_object
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 29f0bd1d6fb..79f88b1b67d 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -141,16 +141,9 @@ class SEQUENCER_HT_header(Header):
SEQUENCER_MT_editor_menus.draw_collapsible(context, layout)
- if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
- layout.separator_spacer()
- row = layout.row(align=True)
- row.prop(sequencer_tool_settings, "fit_method", text="")
- layout.separator_spacer()
+ layout.separator_spacer()
if st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}:
- if st.view_type == 'PREVIEW':
- layout.separator_spacer()
-
layout.prop(st, "display_mode", text="", icon_only=True)
layout.prop(st, "preview_channels", text="", icon_only=True)
@@ -412,7 +405,19 @@ class SEQUENCER_MT_view(Menu):
layout.separator()
layout.prop(st, "show_seconds")
layout.prop(st, "show_markers")
- layout.menu("SEQUENCER_MT_view_cache", text="Show Cache")
+ if context.preferences.view.show_developer_ui:
+ layout.menu("SEQUENCER_MT_view_cache", text="Show Cache")
+
+ if is_preview:
+ layout.separator()
+ if st.display_mode == 'IMAGE':
+ layout.prop(st, "use_zoom_to_fit")
+ layout.prop(ed, "show_overlay", text="Show Frame Overlay")
+ layout.prop(st, "show_safe_areas", text="Show Safe Areas")
+ layout.prop(st, "show_metadata", text="Show Metadata")
+ layout.prop(st, "show_annotation", text="Show Annotations")
+ elif st.display_mode == 'WAVEFORM':
+ layout.prop(st, "show_separate_color", text="Show Separate Color Channels")
layout.separator()
@@ -1877,11 +1882,12 @@ class SEQUENCER_PT_adjust_color(SequencerButtonsPanel, Panel):
class SEQUENCER_PT_cache_settings(SequencerButtonsPanel, Panel):
bl_label = "Cache Settings"
- bl_category = "Proxy & Cache"
+ bl_category = "Cache"
@classmethod
def poll(cls, context):
- return cls.has_sequencer(context) and context.scene.sequence_editor
+ show_developer_ui = context.preferences.view.show_developer_ui
+ return cls.has_sequencer(context) and context.scene.sequence_editor and show_developer_ui
def draw(self, context):
layout = self.layout
@@ -1900,7 +1906,7 @@ class SEQUENCER_PT_cache_settings(SequencerButtonsPanel, Panel):
class SEQUENCER_PT_proxy_settings(SequencerButtonsPanel, Panel):
bl_label = "Proxy Settings"
- bl_category = "Proxy & Cache"
+ bl_category = "Proxy"
@classmethod
def poll(cls, context):
@@ -1925,7 +1931,7 @@ class SEQUENCER_PT_proxy_settings(SequencerButtonsPanel, Panel):
class SEQUENCER_PT_strip_proxy(SequencerButtonsPanel, Panel):
bl_label = "Strip Proxy & Timecode"
- bl_category = "Proxy & Cache"
+ bl_category = "Proxy"
@classmethod
def poll(cls, context):
@@ -1936,7 +1942,7 @@ class SEQUENCER_PT_strip_proxy(SequencerButtonsPanel, Panel):
if not strip:
return False
- return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'META', 'MULTICAM'}
+ return strip.type in {'MOVIE', 'IMAGE'}
def draw_header(self, context):
strip = act_strip(context)
@@ -1987,14 +1993,15 @@ class SEQUENCER_PT_strip_proxy(SequencerButtonsPanel, Panel):
class SEQUENCER_PT_strip_cache(SequencerButtonsPanel, Panel):
bl_label = "Strip Cache"
- bl_category = "Proxy & Cache"
+ bl_category = "Cache"
bl_options = {'DEFAULT_CLOSED'}
@classmethod
def poll(cls, context):
+ show_developer_ui = context.preferences.view.show_developer_ui
if not cls.has_sequencer(context):
return False
- if act_strip(context) is not None:
+ if act_strip(context) is not None and show_developer_ui:
return True
return False
diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py
index 3b9ce5311f3..774e2938deb 100644
--- a/release/scripts/startup/bl_ui/space_time.py
+++ b/release/scripts/startup/bl_ui/space_time.py
@@ -107,6 +107,9 @@ class TIME_MT_editor_menus(Menu):
text="Keying",
)
+ # Add a separator to keep the popover button from aligning with the menu button.
+ sub.separator(factor=0.4)
+
if horizontal:
sub = row.row(align=True)
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py
index 748b5733433..12ec863327c 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_common.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py
@@ -1004,7 +1004,7 @@ def _activate_by_item(context, space_type, item, index, *, as_fallback=False):
if item.draw_cursor is not None:
def handle_fn(context, item, tool, xy):
item.draw_cursor(context, tool, xy)
- handle = WindowManager.draw_cursor_add(handle_fn, (context, item, tool), space_type)
+ handle = WindowManager.draw_cursor_add(handle_fn, (context, item, tool), space_type, 'WINDOW')
handle_map[space_type] = handle
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index a5354ca6bbe..fdc3732f92a 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -441,38 +441,90 @@ class _defs_view3d_select:
class _defs_view3d_add:
+ @staticmethod
+ def description_interactive_add(context, _item, _km, *, prefix):
+ km = context.window_manager.keyconfigs.user.keymaps["View3D Placement Modal"]
+
+ def keymap_item_from_propvalue(propvalue):
+ for item in km.keymap_items:
+ if item.propvalue == propvalue:
+ return item
+
+ if km is not None:
+ kmi_snap = keymap_item_from_propvalue('SNAP_ON')
+ kmi_center = keymap_item_from_propvalue('PIVOT_CENTER_ON')
+ kmi_fixed_aspect = keymap_item_from_propvalue('FIXED_ASPECT_ON')
+ else:
+ kmi_snap = None
+ kmi_center = None
+ kmi_fixed_aspect = None
+ return tip_(
+ "%s\n"
+ "\u2022 %s toggles snap while dragging.\n"
+ "\u2022 %s toggles dragging from the center.\n"
+ "\u2022 %s toggles fixed aspect"
+ ) % (
+ prefix,
+ kmi_to_string_or_none(kmi_snap),
+ kmi_to_string_or_none(kmi_center),
+ kmi_to_string_or_none(kmi_fixed_aspect),
+ )
+
# Layout tweaks here would be good to avoid,
# this shows limits in layout engine, as buttons are using a lot of space.
@staticmethod
- def draw_settings_interactive_add(layout, tool):
+ def draw_settings_interactive_add(layout, tool, extra):
+ show_extra = False
props = tool.operator_properties("view3d.interactive_add")
- row = layout.row()
- row.scale_x = 0.8
- row.label(text="Depth:")
- row = layout.row()
- row.scale_x = 0.9
- row.prop(props, "plane_depth", text="")
- row = layout.row()
- row.prop(props, "plane_axis", text="")
- row = layout.row()
- row.scale_x = 0.8
- row.label(text="Orientation:")
- row = layout.row()
- row.prop(props, "plane_orientation", text="")
- row = layout.row()
- row.scale_x = 0.7
- row.prop(props, "plane_origin")
+ if not extra:
+ row = layout.row()
+ row.scale_x = 0.8
+ row.label(text="Depth:")
+ row = layout.row()
+ row.scale_x = 0.9
+ row.prop(props, "plane_depth", text="")
+ row = layout.row()
+ row.scale_x = 0.8
+ row.label(text="Orientation:")
+ row = layout.row()
+ row.prop(props, "plane_orientation", text="")
+ row = layout.row()
+ row.scale_x = 0.8
+ row.prop(props, "snap_target")
+
+ region_is_header = bpy.context.region.type == 'TOOL_HEADER'
+
+ if region_is_header:
+ # Don't draw the "extra" popover here as we might have other settings & this should be last.
+ show_extra = True
+ else:
+ extra = True
+
+ if extra:
+ layout.use_property_split = True
+ layout.row().prop(props, "plane_axis", expand=True)
+
+ layout.label(text="Base")
+ layout.row().prop(props, "plane_origin_base", expand=True)
+ layout.row().prop(props, "plane_aspect_base", expand=True)
+ layout.label(text="Height")
+ layout.row().prop(props, "plane_origin_depth", expand=True)
+ layout.row().prop(props, "plane_aspect_depth", expand=True)
+ return show_extra
@ToolDef.from_fn
def cube_add():
- def draw_settings(_context, layout, tool):
- _defs_view3d_add.draw_settings_interactive_add(layout, tool)
+ def draw_settings(_context, layout, tool, *, extra=False):
+ show_extra = _defs_view3d_add.draw_settings_interactive_add(layout, tool, extra)
+ if show_extra:
+ layout.popover("TOPBAR_PT_tool_settings_extra", text="...")
+
return dict(
idname="builtin.primitive_cube_add",
label="Add Cube",
icon="ops.mesh.primitive_cube_add_gizmo",
- description=(
- "Add cube to mesh interactively"
+ description=lambda *args: _defs_view3d_add.description_interactive_add(
+ *args, prefix=tip_("Add cube to mesh interactively"),
),
widget="VIEW3D_GGT_placement",
keymap="3D View Tool: Object, Add Primitive",
@@ -481,18 +533,24 @@ class _defs_view3d_add:
@ToolDef.from_fn
def cone_add():
- def draw_settings(_context, layout, tool):
- _defs_view3d_add.draw_settings_interactive_add(layout, tool)
+ def draw_settings(_context, layout, tool, *, extra=False):
+ show_extra = _defs_view3d_add.draw_settings_interactive_add(layout, tool, extra)
+ if extra:
+ return
props = tool.operator_properties("mesh.primitive_cone_add")
layout.prop(props, "vertices")
layout.prop(props, "end_fill_type")
+
+ if show_extra:
+ layout.popover("TOPBAR_PT_tool_settings_extra", text="...")
+
return dict(
idname="builtin.primitive_cone_add",
label="Add Cone",
icon="ops.mesh.primitive_cone_add_gizmo",
- description=(
- "Add cone to mesh interactively"
+ description=lambda *args: _defs_view3d_add.description_interactive_add(
+ *args, prefix=tip_("Add cone to mesh interactively"),
),
widget="VIEW3D_GGT_placement",
keymap="3D View Tool: Object, Add Primitive",
@@ -501,18 +559,23 @@ class _defs_view3d_add:
@ToolDef.from_fn
def cylinder_add():
- def draw_settings(_context, layout, tool):
- _defs_view3d_add.draw_settings_interactive_add(layout, tool)
+ def draw_settings(_context, layout, tool, *, extra=False):
+ show_extra = _defs_view3d_add.draw_settings_interactive_add(layout, tool, extra)
+ if extra:
+ return
props = tool.operator_properties("mesh.primitive_cylinder_add")
layout.prop(props, "vertices")
layout.prop(props, "end_fill_type")
+
+ if show_extra:
+ layout.popover("TOPBAR_PT_tool_settings_extra", text="...")
return dict(
idname="builtin.primitive_cylinder_add",
label="Add Cylinder",
icon="ops.mesh.primitive_cylinder_add_gizmo",
- description=(
- "Add cylinder to mesh interactively"
+ description=lambda *args: _defs_view3d_add.description_interactive_add(
+ *args, prefix=tip_("Add cylinder to mesh interactively"),
),
widget="VIEW3D_GGT_placement",
keymap="3D View Tool: Object, Add Primitive",
@@ -521,18 +584,23 @@ class _defs_view3d_add:
@ToolDef.from_fn
def uv_sphere_add():
- def draw_settings(_context, layout, tool):
- _defs_view3d_add.draw_settings_interactive_add(layout, tool)
+ def draw_settings(_context, layout, tool, *, extra=False):
+ show_extra = _defs_view3d_add.draw_settings_interactive_add(layout, tool, extra)
+ if extra:
+ return
props = tool.operator_properties("mesh.primitive_uv_sphere_add")
layout.prop(props, "segments")
layout.prop(props, "ring_count")
+
+ if show_extra:
+ layout.popover("TOPBAR_PT_tool_settings_extra", text="...")
return dict(
idname="builtin.primitive_uv_sphere_add",
label="Add UV Sphere",
icon="ops.mesh.primitive_sphere_add_gizmo",
- description=(
- "Add cylinder to mesh interactively"
+ description=lambda *args: _defs_view3d_add.description_interactive_add(
+ *args, prefix=tip_("Add sphere to mesh interactively"),
),
widget="VIEW3D_GGT_placement",
keymap="3D View Tool: Object, Add Primitive",
@@ -541,17 +609,22 @@ class _defs_view3d_add:
@ToolDef.from_fn
def ico_sphere_add():
- def draw_settings(_context, layout, tool):
- _defs_view3d_add.draw_settings_interactive_add(layout, tool)
+ def draw_settings(_context, layout, tool, *, extra=False):
+ show_extra = _defs_view3d_add.draw_settings_interactive_add(layout, tool, extra)
+ if extra:
+ return
props = tool.operator_properties("mesh.primitive_ico_sphere_add")
layout.prop(props, "subdivisions")
+
+ if show_extra:
+ layout.popover("TOPBAR_PT_tool_settings_extra", text="...")
return dict(
idname="builtin.primitive_ico_sphere_add",
label="Add Ico Sphere",
icon="ops.mesh.primitive_sphere_add_gizmo",
- description=(
- "Add cylinder to mesh interactively"
+ description=lambda *args: _defs_view3d_add.description_interactive_add(
+ *args, prefix=tip_("Add sphere to mesh interactively"),
),
widget="VIEW3D_GGT_placement",
keymap="3D View Tool: Object, Add Primitive",
@@ -1488,6 +1561,7 @@ class _defs_texture_paint:
icon_prefix="brush.paint_texture.",
type=bpy.types.Brush,
attr="image_tool",
+ cursor='PAINT_CROSS',
)
@@ -1514,12 +1588,22 @@ class _defs_weight_paint:
@ToolDef.from_fn
def sample_weight():
+ def draw_settings(context, layout, tool):
+ if context.tool_settings.unified_paint_settings.use_unified_weight:
+ weight = context.tool_settings.unified_paint_settings.weight
+ elif context.tool_settings.weight_paint.brush:
+ weight = context.tool_settings.weight_paint.brush.weight
+ else:
+ return
+ layout.label(text="Weight: %.3f" % weight)
return dict(
idname="builtin.sample_weight",
label="Sample Weight",
icon="ops.paint.weight_sample",
+ cursor='EYEDROPPER',
widget=None,
keymap=(),
+ draw_settings=draw_settings
)
@ToolDef.from_fn
@@ -1528,6 +1612,7 @@ class _defs_weight_paint:
idname="builtin.sample_vertex_group",
label="Sample Vertex Group",
icon="ops.paint.weight_sample_group",
+ cursor='EYEDROPPER',
widget=None,
keymap=(),
)
@@ -2570,12 +2655,8 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
],
'OBJECT': [
*_tools_default,
- # Currently experimental.
- # None, _tools_view3d_add,
- lambda context: (
- (None, VIEW3D_PT_tools_active._tools_view3d_add)
- if (context is None or context.preferences.experimental.use_object_add_tool) else ()
- ),
+ None,
+ _tools_view3d_add,
],
'POSE': [
*_tools_default,
@@ -2604,12 +2685,8 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
'EDIT_MESH': [
*_tools_default,
- # Currently experimental.
- # None, _tools_view3d_add,
- lambda context: (
- (None, VIEW3D_PT_tools_active._tools_view3d_add)
- if (context is None or context.preferences.experimental.use_object_add_tool) else ()
- ),
+ None,
+ _tools_view3d_add,
None,
(
_defs_edit_mesh.extrude,
diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py
index a7e28c38b9e..255b6326416 100644
--- a/release/scripts/startup/bl_ui/space_topbar.py
+++ b/release/scripts/startup/bl_ui/space_topbar.py
@@ -567,7 +567,7 @@ class TOPBAR_MT_edit(Menu):
props.name = "TOPBAR_PT_name"
props.keep_open = False
- layout.operator("wm.batch_rename")
+ layout.operator("wm.batch_rename", text="Batch Rename...")
layout.separator()
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 31b0b915855..a0b5355e64d 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -542,7 +542,7 @@ class USERPREF_PT_animation_fcurves(AnimationPanel, CenterAlignMixIn, Panel):
flow = layout.grid_flow(row_major=False, columns=0, even_columns=True, even_rows=False, align=False)
- flow.prop(edit, "fcurve_unselected_alpha", text="F-Curve Visibility")
+ flow.prop(edit, "fcurve_unselected_alpha", text="Unselected Opacity")
flow.prop(edit, "fcurve_new_auto_smoothing", text="Default Smoothing Mode")
flow.prop(edit, "keyframe_new_interpolation_type", text="Default Interpolation")
flow.prop(edit, "keyframe_new_handle_type", text="Default Handles")
@@ -691,6 +691,9 @@ class USERPREF_PT_viewport_display(ViewportPanel, CenterAlignMixIn, Panel):
col.prop(view, "mini_axis_size", text="Size")
col.prop(view, "mini_axis_brightness", text="Brightness")
+ if view.mini_axis_type == 'GIZMO':
+ col.prop(view, "gizmo_size_navigate_v3d", text="Size")
+
class USERPREF_PT_viewport_quality(ViewportPanel, CenterAlignMixIn, Panel):
bl_label = "Quality"
@@ -1342,6 +1345,11 @@ class USERPREF_PT_saveload_autorun(FilePathsPanel, Panel):
class USERPREF_PT_file_paths_asset_libraries(FilePathsPanel, Panel):
bl_label = "Asset Libraries"
+ @classmethod
+ def poll(cls, context):
+ prefs = context.preferences
+ return prefs.experimental.use_asset_browser
+
def draw(self, context):
layout = self.layout
layout.use_property_split = False
@@ -2188,14 +2196,21 @@ class ExperimentalPanel:
layout.use_property_split = False
layout.use_property_decorate = False
- for prop_keywords, task in items:
+ for prop_keywords, reference in items:
split = layout.split(factor=0.66)
col = split.split()
col.prop(experimental, **prop_keywords)
- if task:
+ if reference:
+ if type(reference) is tuple:
+ url_ext = reference[0]
+ text = reference[1]
+ else:
+ url_ext = reference
+ text = reference
+
col = split.split()
- col.operator("wm.url_open", text=task, icon='URL').url = self.url_prefix + task
+ col.operator("wm.url_open", text=text, icon='URL').url = self.url_prefix + url_ext
"""
@@ -2224,7 +2239,7 @@ class USERPREF_PT_experimental_new_features(ExperimentalPanel, Panel):
({"property": "use_sculpt_vertex_colors"}, "T71947"),
({"property": "use_switch_object_operator"}, "T80402"),
({"property": "use_sculpt_tools_tilt"}, "T82877"),
- ({"property": "use_object_add_tool"}, "T57210"),
+ ({"property": "use_asset_browser"}, ("project/profile/124/", "Milestone 1")),
),
)
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 55cb110177f..e653ead21bb 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -2236,11 +2236,6 @@ class VIEW3D_MT_object_relations(Menu):
layout.operator_menu_enum("object.make_local", "type", text="Make Local...")
layout.menu("VIEW3D_MT_make_single_user")
- layout.separator()
-
- layout.operator("object.data_transfer")
- layout.operator("object.datalayout_transfer")
-
class VIEW3D_MT_object(Menu):
bl_context = "objectmode"
@@ -2274,7 +2269,7 @@ class VIEW3D_MT_object(Menu):
layout.menu("VIEW3D_MT_object_relations")
layout.menu("VIEW3D_MT_object_constraints")
layout.menu("VIEW3D_MT_object_track")
- layout.menu("VIEW3D_MT_make_links", text="Make Links")
+ layout.menu("VIEW3D_MT_make_links")
layout.separator()
@@ -2292,16 +2287,7 @@ class VIEW3D_MT_object(Menu):
layout.separator()
- ob = context.active_object
- if ob and ob.type == 'GPENCIL' and context.gpencil_data:
- layout.operator_menu_enum("gpencil.convert", "type", text="Convert To")
- else:
- layout.operator_menu_enum("object.convert", "target")
-
- # Potrace lib dependency
- if bpy.app.build_options.potrace:
- layout.separator()
- layout.operator("gpencil.trace_image")
+ layout.menu("VIEW3D_MT_object_convert")
layout.separator()
@@ -2397,37 +2383,25 @@ class VIEW3D_MT_object_context_menu(Menu):
'''
# If something is selected
- if obj is not None and obj.type in {'MESH', 'CURVE', 'SURFACE'}:
- layout.operator("object.shade_smooth", text="Shade Smooth")
- layout.operator("object.shade_flat", text="Shade Flat")
-
- layout.separator()
+ # Individual object types.
if obj is None:
pass
- elif obj.type == 'MESH':
- layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type")
-
- layout.operator_context = 'INVOKE_DEFAULT'
- # If more than one object is selected
- if selected_objects_len > 1:
- layout.operator("object.join")
-
- layout.separator()
elif obj.type == 'CAMERA':
layout.operator_context = 'INVOKE_REGION_WIN'
+ layout.operator("view3d.object_as_camera", text="Set Active Camera")
+
if obj.data.type == 'PERSP':
- props = layout.operator("wm.context_modal_mouse", text="Camera Lens Angle")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Focal Length")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.lens"
props.input_scale = 0.1
if obj.data.lens_unit == 'MILLIMETERS':
- props.header_text = "Camera Lens Angle: %.1fmm"
+ props.header_text = "Camera Focal Length: %.1fmm"
else:
- props.header_text = "Camera Lens Angle: %.1f\u00B0"
+ props.header_text = "Camera Focal Length: %.1f\u00B0"
else:
props = layout.operator("wm.context_modal_mouse", text="Camera Lens Scale")
@@ -2440,87 +2414,83 @@ class VIEW3D_MT_object_context_menu(Menu):
if view and view.camera == obj and view.region_3d.view_perspective == 'CAMERA':
props = layout.operator("ui.eyedropper_depth", text="DOF Distance (Pick)")
else:
- props = layout.operator("wm.context_modal_mouse", text="DOF Distance")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Focus Distance")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.dof.focus_distance"
props.input_scale = 0.02
- props.header_text = "DOF Distance: %.3f"
+ props.header_text = "Focus Distance: %.3f"
layout.separator()
elif obj.type in {'CURVE', 'FONT'}:
layout.operator_context = 'INVOKE_REGION_WIN'
- props = layout.operator("wm.context_modal_mouse", text="Extrude Size")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Extrusion")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.extrude"
props.input_scale = 0.01
- props.header_text = "Extrude Size: %.3f"
+ props.header_text = "Extrude: %.3f"
- props = layout.operator("wm.context_modal_mouse", text="Width Size")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Offset")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.offset"
props.input_scale = 0.01
- props.header_text = "Width Size: %.3f"
-
- layout.separator()
-
- layout.operator("object.convert", text="Convert to Mesh").target = 'MESH'
- layout.operator("object.convert", text="Convert to Grease Pencil").target = 'GPENCIL'
- layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type")
-
- layout.separator()
-
- elif obj.type == 'GPENCIL':
- layout.operator("gpencil.convert", text="Convert to Path").type = 'PATH'
- layout.operator("gpencil.convert", text="Convert to Bezier Curve").type = 'CURVE'
- layout.operator("gpencil.convert", text="Convert to Polygon Curve").type = 'POLY'
-
- layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type")
+ props.header_text = "Offset: %.3f"
layout.separator()
elif obj.type == 'EMPTY':
layout.operator_context = 'INVOKE_REGION_WIN'
- props = layout.operator("wm.context_modal_mouse", text="Empty Draw Size")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Empty Display Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "empty_display_size"
props.input_scale = 0.01
- props.header_text = "Empty Draw Size: %.3f"
+ props.header_text = "Empty Display Size: %.3f"
layout.separator()
+ if obj.empty_display_type == 'IMAGE':
+ layout.operator("gpencil.trace_image")
+
+ layout.separator()
+
elif obj.type == 'LIGHT':
light = obj.data
layout.operator_context = 'INVOKE_REGION_WIN'
- props = layout.operator("wm.context_modal_mouse", text="Power")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Light Power")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.energy"
+ props.input_scale = 1.0
props.header_text = "Light Power: %.3f"
if light.type == 'AREA':
- props = layout.operator("wm.context_modal_mouse", text="Size X")
- props.data_path_iter = "selected_editable_objects"
- props.data_path_item = "data.size"
- props.header_text = "Light Size X: %.3f"
-
if light.shape in {'RECTANGLE', 'ELLIPSE'}:
- props = layout.operator("wm.context_modal_mouse", text="Size Y")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Area Light X Size")
+ props.data_path_iter = "selected_editable_objects"
+ props.data_path_item = "data.size"
+ props.header_text = "Light Size X: %.3f"
+
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Area Light Y Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.size_y"
props.header_text = "Light Size Y: %.3f"
+ else:
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Area Light Size")
+ props.data_path_iter = "selected_editable_objects"
+ props.data_path_item = "data.size"
+ props.header_text = "Light Size: %.3f"
elif light.type in {'SPOT', 'POINT'}:
- props = layout.operator("wm.context_modal_mouse", text="Radius")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Light Radius")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.shadow_soft_size"
props.header_text = "Light Radius: %.3f"
elif light.type == 'SUN':
- props = layout.operator("wm.context_modal_mouse", text="Angle")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Sun Light Angle")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.angle"
props.header_text = "Light Angle: %.3f"
@@ -2528,13 +2498,13 @@ class VIEW3D_MT_object_context_menu(Menu):
if light.type == 'SPOT':
layout.separator()
- props = layout.operator("wm.context_modal_mouse", text="Spot Size")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Spot Light Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.spot_size"
props.input_scale = 0.01
props.header_text = "Spot Size: %.2f"
- props = layout.operator("wm.context_modal_mouse", text="Spot Blend")
+ props = layout.operator("wm.context_modal_mouse", text="Adjust Spot Light Blend")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.spot_blend"
props.input_scale = -0.01
@@ -2542,6 +2512,35 @@ class VIEW3D_MT_object_context_menu(Menu):
layout.separator()
+ # Shared among some object types.
+ if obj is not None:
+ if obj.type in {'MESH', 'CURVE', 'SURFACE'}:
+ layout.operator("object.shade_smooth", text="Shade Smooth")
+ layout.operator("object.shade_flat", text="Shade Flat")
+
+ layout.separator()
+
+ if obj.type in {'MESH', 'CURVE', 'SURFACE', 'ARMATURE', 'GPENCIL'}:
+ if selected_objects_len > 1:
+ layout.operator("object.join")
+
+ if obj.type in {'MESH', 'CURVE', 'SURFACE', 'POINTCLOUD', 'META', 'FONT'}:
+ layout.operator_menu_enum("object.convert", "target")
+
+ if obj.type == 'GPENCIL':
+ layout.operator_menu_enum("gpencil.convert", "type", text="Convert To")
+
+ if (
+ obj.type in {'MESH', 'CURVE', 'SURFACE', 'GPENCIL', 'LATTICE', 'ARMATURE', 'META'} or
+ (obj.type == 'EMPTY' and obj.instance_collection is not None)
+ ):
+ layout.operator_context = 'INVOKE_REGION_WIN'
+ layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type")
+ layout.operator_context = 'INVOKE_DEFAULT'
+
+ layout.separator()
+
+ # Shared among all object types
layout.operator("view3d.copybuffer", text="Copy Objects", icon='COPYDOWN')
layout.operator("view3d.pastebuffer", text="Paste Objects", icon='PASTEDOWN')
@@ -2786,8 +2785,25 @@ class VIEW3D_MT_make_single_user(Menu):
props.object = props.obdata = props.material = False
+class VIEW3D_MT_object_convert(Menu):
+ bl_label = "Convert"
+
+ def draw(self, context):
+ layout = self.layout
+ ob = context.active_object
+
+ if ob and ob.type == 'GPENCIL' and context.gpencil_data:
+ layout.operator_enum("gpencil.convert", "type")
+ else:
+ layout.operator_enum("object.convert", "target")
+
+ # Potrace lib dependency.
+ if bpy.app.build_options.potrace:
+ layout.operator("gpencil.trace_image", icon='OUTLINER_OB_GREASEPENCIL')
+
+
class VIEW3D_MT_make_links(Menu):
- bl_label = "Make Links"
+ bl_label = "Link/Transfer Data"
def draw(self, _context):
layout = self.layout
@@ -2795,10 +2811,10 @@ class VIEW3D_MT_make_links(Menu):
if len(bpy.data.scenes) > 10:
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("object.make_links_scene", text="Objects to Scene...", icon='OUTLINER_OB_EMPTY')
+ layout.operator("object.make_links_scene", text="Link Objects to Scene...", icon='OUTLINER_OB_EMPTY')
else:
layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator_menu_enum("object.make_links_scene", "scene", text="Objects to Scene")
+ layout.operator_menu_enum("object.make_links_scene", "scene", text="Link Objects to Scene")
layout.separator()
@@ -2806,7 +2822,12 @@ class VIEW3D_MT_make_links(Menu):
layout.operator_enum("object.make_links_data", "type") # inline
- layout.operator("object.join_uvs") # stupid place to add this!
+ layout.operator("object.join_uvs", text="Copy UV Maps")
+
+ layout.separator()
+
+ layout.operator("object.data_transfer")
+ layout.operator("object.datalayout_transfer")
class VIEW3D_MT_brush_paint_modes(Menu):
@@ -7525,6 +7546,7 @@ classes = (
VIEW3D_MT_object_rigid_body,
VIEW3D_MT_object_clear,
VIEW3D_MT_object_context_menu,
+ VIEW3D_MT_object_convert,
VIEW3D_MT_object_shading,
VIEW3D_MT_object_apply,
VIEW3D_MT_object_relations,
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 577f9678a62..7c718ee8155 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -352,10 +352,13 @@ class VIEW3D_PT_tools_particlemode(Panel, View3DPaintPanel):
layout.row().prop(brush, "puff_mode", expand=True)
layout.prop(brush, "use_puff_volume")
elif tool == 'COMB':
- layout.prop(settings, "use_emitter_deflect", text="Deflect Emitter")
- col = layout.column()
- col.active = settings.use_emitter_deflect
- col.prop(settings, "emitter_distance", text="Distance")
+ col = layout.column(align=False, heading="Deflect Emitter")
+ row = col.row(align=True)
+ sub = row.row(align=True)
+ sub.prop(settings, "use_emitter_deflect", text="")
+ sub = sub.row(align=True)
+ sub.active = settings.use_emitter_deflect
+ sub.prop(settings, "emitter_distance", text="")
# TODO, move to space_view3d.py
@@ -1231,14 +1234,20 @@ class VIEW3D_PT_tools_particlemode_options(View3DPanel, Panel):
col = layout.column(align=True)
col.active = pe.is_editable
- col.prop(ob.data, "use_mirror_x")
- if pe.tool == 'ADD':
- col.prop(ob.data, "use_mirror_topology")
- col.separator()
- col.prop(pe, "use_preserve_length", text="Preserve Strand Lengths")
- col.prop(pe, "use_preserve_root", text="Preserve Root Positions")
+
if not pe.is_hair:
col.prop(pe, "use_auto_velocity", text="Auto-Velocity")
+ col.separator()
+
+ sub = col.column(align=True, heading="Mirror")
+ sub.prop(ob.data, "use_mirror_x")
+ if pe.tool == 'ADD':
+ sub.prop(ob.data, "use_mirror_topology")
+ col.separator()
+
+ sub = col.column(align=True, heading="Preserve")
+ sub.prop(pe, "use_preserve_length", text="Strand Lengths")
+ sub.prop(pe, "use_preserve_root", text="Root Positions")
class VIEW3D_PT_tools_particlemode_options_shapecut(View3DPanel, Panel):
@@ -1282,10 +1291,13 @@ class VIEW3D_PT_tools_particlemode_options_display(View3DPanel, Panel):
else:
if pe.type == 'PARTICLES':
col.prop(pe, "show_particles", text="Particles")
- col.prop(pe, "use_fade_time")
- sub = col.row(align=True)
+ col = layout.column(align=False, heading="Fade Time")
+ row = col.row(align=True)
+ sub = row.row(align=True)
+ sub.prop(pe, "use_fade_time", text="")
+ sub = sub.row(align=True)
sub.active = pe.use_fade_time
- sub.prop(pe, "fade_frames", slider=True)
+ sub.prop(pe, "fade_frames", slider=True, text="")
# ********** grease pencil object tool panels ****************
@@ -1435,7 +1447,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_advanced(View3DPanel, Panel):
row.prop(gp_settings, "fill_layer_mode", text="Layers")
col.separator()
- col.prop(gp_settings, "fill_factor", text="Resolution")
+ col.prop(gp_settings, "fill_factor")
if gp_settings.fill_draw_mode != 'STROKE':
col = layout.column(align=False, heading="Ignore Transparent")
col.use_property_decorate = False
diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index 65af1bccd80..56f0b5c0ba4 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -330,7 +330,7 @@ compositor_node_categories = [
NodeItem("CompositorNodeHueCorrect"),
NodeItem("CompositorNodeBrightContrast"),
NodeItem("CompositorNodeGamma"),
- NodeItem("CompositorNodeExposure"),
+ NodeItem("CompositorNodeExposure"),
NodeItem("CompositorNodeColorCorrection"),
NodeItem("CompositorNodeTonemap"),
NodeItem("CompositorNodeZcombine"),
@@ -488,6 +488,8 @@ geometry_node_categories = [
NodeItem("GeometryNodeAttributeFill"),
NodeItem("GeometryNodeAttributeMix"),
NodeItem("GeometryNodeAttributeColorRamp"),
+ NodeItem("GeometryNodeAttributeVectorMath"),
+ NodeItem("GeometryNodeAttributeSampleTexture"),
]),
GeometryNodeCategory("GEO_COLOR", "Color", items=[
NodeItem("ShaderNodeValToRGB"),
@@ -514,7 +516,13 @@ geometry_node_categories = [
NodeItem("GeometryNodePointDistribute"),
NodeItem("GeometryNodePointInstance"),
NodeItem("GeometryNodePointSeparate"),
+ NodeItem("GeometryNodePointScale"),
+ NodeItem("GeometryNodePointTranslate"),
NodeItem("GeometryNodeRotatePoints"),
+ NodeItem("GeometryNodeAlignRotationToVector"),
+ ]),
+ GeometryNodeCategory("GEO_VOLUME", "Volume", items=[
+ NodeItem("GeometryNodePointsToVolume"),
]),
GeometryNodeCategory("GEO_UTILITIES", "Utilities", items=[
NodeItem("ShaderNodeMapRange"),
diff --git a/release/scripts/templates_py/driver_functions.py b/release/scripts/templates_py/driver_functions.py
index 1c6af0e574f..d3aab75e7ba 100644
--- a/release/scripts/templates_py/driver_functions.py
+++ b/release/scripts/templates_py/driver_functions.py
@@ -1,8 +1,8 @@
-# This script defines functions to be used directly in drivers expressions to
-# extend the builtin set of python functions.
+# This script defines functions to be used directly in driver expressions to
+# extend the built-in set of python functions.
#
# This can be executed on manually or set to 'Register' to
-# initialize thefunctions on file load.
+# initialize the functions on file load.
# two sample functions
@@ -30,6 +30,6 @@ def slow_value(value, fac, uuid):
import bpy
-# Add variable defined in this script into the drivers namespace.
+# Add functions defined in this script into the drivers namespace.
bpy.app.driver_namespace["invert"] = invert
bpy.app.driver_namespace["slow_value"] = slow_value
diff --git a/release/windows/batch/blender_debug_gpu.cmd b/release/windows/batch/blender_debug_gpu.cmd
index 46d126ab621..53d7863ec70 100644
--- a/release/windows/batch/blender_debug_gpu.cmd
+++ b/release/windows/batch/blender_debug_gpu.cmd
@@ -12,5 +12,5 @@ mkdir "%temp%\blender\debug_logs" > NUL 2>&1
echo.
echo Starting blender and waiting for it to exit....
set PYTHONPATH=
-"%~dp0\blender" --debug --debug-gpu --python-expr "import bpy; bpy.ops.wm.sysinfo(filepath=r'%temp%\blender\debug_logs\blender_system_info.txt')" > "%temp%\blender\debug_logs\blender_debug_output.txt" 2>&1 < %0
+"%~dp0\blender" --debug --debug-gpu --debug-cycles --python-expr "import bpy; bpy.ops.wm.sysinfo(filepath=r'%temp%\blender\debug_logs\blender_system_info.txt')" > "%temp%\blender\debug_logs\blender_debug_output.txt" 2>&1 < %0
explorer "%temp%\blender\debug_logs" \ No newline at end of file
diff --git a/release/windows/msix/Assets/Square150x150Logo.png b/release/windows/msix/Assets/Square150x150Logo.png
deleted file mode 100644
index 7dbbde793ba..00000000000
--- a/release/windows/msix/Assets/Square150x150Logo.png
+++ /dev/null
Binary files differ
diff --git a/release/windows/msix/Assets/Square150x150Logo.scale-100.png b/release/windows/msix/Assets/Square150x150Logo.scale-100.png
new file mode 100644
index 00000000000..3918e2e2e5f
--- /dev/null
+++ b/release/windows/msix/Assets/Square150x150Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square150x150Logo.scale-125.png b/release/windows/msix/Assets/Square150x150Logo.scale-125.png
new file mode 100644
index 00000000000..f9c53441f78
--- /dev/null
+++ b/release/windows/msix/Assets/Square150x150Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square150x150Logo.scale-150.png b/release/windows/msix/Assets/Square150x150Logo.scale-150.png
new file mode 100644
index 00000000000..e57e851e3a8
--- /dev/null
+++ b/release/windows/msix/Assets/Square150x150Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square150x150Logo.scale-200.png b/release/windows/msix/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 00000000000..a0b1edd769f
--- /dev/null
+++ b/release/windows/msix/Assets/Square150x150Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square150x150Logo.scale-400.png b/release/windows/msix/Assets/Square150x150Logo.scale-400.png
new file mode 100644
index 00000000000..411c76a3cbf
--- /dev/null
+++ b/release/windows/msix/Assets/Square150x150Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square310x310Logo.png b/release/windows/msix/Assets/Square310x310Logo.png
deleted file mode 100644
index 2190415e35b..00000000000
--- a/release/windows/msix/Assets/Square310x310Logo.png
+++ /dev/null
Binary files differ
diff --git a/release/windows/msix/Assets/Square310x310Logo.scale-100.png b/release/windows/msix/Assets/Square310x310Logo.scale-100.png
new file mode 100644
index 00000000000..73a89b6b871
--- /dev/null
+++ b/release/windows/msix/Assets/Square310x310Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square310x310Logo.scale-125.png b/release/windows/msix/Assets/Square310x310Logo.scale-125.png
new file mode 100644
index 00000000000..e3583f43179
--- /dev/null
+++ b/release/windows/msix/Assets/Square310x310Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square310x310Logo.scale-150.png b/release/windows/msix/Assets/Square310x310Logo.scale-150.png
new file mode 100644
index 00000000000..855022d9439
--- /dev/null
+++ b/release/windows/msix/Assets/Square310x310Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square310x310Logo.scale-200.png b/release/windows/msix/Assets/Square310x310Logo.scale-200.png
new file mode 100644
index 00000000000..dd19deb2dbc
--- /dev/null
+++ b/release/windows/msix/Assets/Square310x310Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square310x310Logo.scale-400.png b/release/windows/msix/Assets/Square310x310Logo.scale-400.png
new file mode 100644
index 00000000000..7eeaff1dfbe
--- /dev/null
+++ b/release/windows/msix/Assets/Square310x310Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png
new file mode 100644
index 00000000000..b1690a98133
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png
new file mode 100644
index 00000000000..7a469b9827b
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png
new file mode 100644
index 00000000000..3e9fe73f116
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png
new file mode 100644
index 00000000000..9e5bd478b2f
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png
new file mode 100644
index 00000000000..1656687d414
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-16.png b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
new file mode 100644
index 00000000000..b1690a98133
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
new file mode 100644
index 00000000000..3e9fe73f116
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-32.png b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-32.png
new file mode 100644
index 00000000000..9e5bd478b2f
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-48.png b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
new file mode 100644
index 00000000000..1656687d414
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.png b/release/windows/msix/Assets/Square44x44Logo.png
deleted file mode 100644
index 7b9ca070558..00000000000
--- a/release/windows/msix/Assets/Square44x44Logo.png
+++ /dev/null
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.scale-100.png b/release/windows/msix/Assets/Square44x44Logo.scale-100.png
new file mode 100644
index 00000000000..f3961184764
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.scale-125.png b/release/windows/msix/Assets/Square44x44Logo.scale-125.png
new file mode 100644
index 00000000000..388309db632
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.scale-150.png b/release/windows/msix/Assets/Square44x44Logo.scale-150.png
new file mode 100644
index 00000000000..2e188ea9815
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.scale-200.png b/release/windows/msix/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 00000000000..faa6741a5c3
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.scale-400.png b/release/windows/msix/Assets/Square44x44Logo.scale-400.png
new file mode 100644
index 00000000000..5251cd570d2
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.targetsize-16.png b/release/windows/msix/Assets/Square44x44Logo.targetsize-16.png
new file mode 100644
index 00000000000..b1690a98133
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.targetsize-24.png b/release/windows/msix/Assets/Square44x44Logo.targetsize-24.png
new file mode 100644
index 00000000000..7a469b9827b
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.targetsize-24.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/release/windows/msix/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 00000000000..7a469b9827b
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.targetsize-256.png b/release/windows/msix/Assets/Square44x44Logo.targetsize-256.png
new file mode 100644
index 00000000000..3e9fe73f116
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.targetsize-32.png b/release/windows/msix/Assets/Square44x44Logo.targetsize-32.png
new file mode 100644
index 00000000000..9e5bd478b2f
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square44x44Logo.targetsize-48.png b/release/windows/msix/Assets/Square44x44Logo.targetsize-48.png
new file mode 100644
index 00000000000..1656687d414
--- /dev/null
+++ b/release/windows/msix/Assets/Square44x44Logo.targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square71x71Logo.png b/release/windows/msix/Assets/Square71x71Logo.png
deleted file mode 100644
index 75bd9bb264a..00000000000
--- a/release/windows/msix/Assets/Square71x71Logo.png
+++ /dev/null
Binary files differ
diff --git a/release/windows/msix/Assets/Square71x71Logo.scale-100.png b/release/windows/msix/Assets/Square71x71Logo.scale-100.png
new file mode 100644
index 00000000000..b1a93328ab7
--- /dev/null
+++ b/release/windows/msix/Assets/Square71x71Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square71x71Logo.scale-125.png b/release/windows/msix/Assets/Square71x71Logo.scale-125.png
new file mode 100644
index 00000000000..da417b1ad1d
--- /dev/null
+++ b/release/windows/msix/Assets/Square71x71Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square71x71Logo.scale-150.png b/release/windows/msix/Assets/Square71x71Logo.scale-150.png
new file mode 100644
index 00000000000..7f8a92cc1e1
--- /dev/null
+++ b/release/windows/msix/Assets/Square71x71Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square71x71Logo.scale-200.png b/release/windows/msix/Assets/Square71x71Logo.scale-200.png
new file mode 100644
index 00000000000..1d24ee66c6e
--- /dev/null
+++ b/release/windows/msix/Assets/Square71x71Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/Square71x71Logo.scale-400.png b/release/windows/msix/Assets/Square71x71Logo.scale-400.png
new file mode 100644
index 00000000000..e328720747a
--- /dev/null
+++ b/release/windows/msix/Assets/Square71x71Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/StoreLogo.png b/release/windows/msix/Assets/StoreLogo.png
deleted file mode 100644
index e8a671b7e0f..00000000000
--- a/release/windows/msix/Assets/StoreLogo.png
+++ /dev/null
Binary files differ
diff --git a/release/windows/msix/Assets/StoreLogo.scale-100.png b/release/windows/msix/Assets/StoreLogo.scale-100.png
new file mode 100644
index 00000000000..e510e88f9ac
--- /dev/null
+++ b/release/windows/msix/Assets/StoreLogo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/StoreLogo.scale-125.png b/release/windows/msix/Assets/StoreLogo.scale-125.png
new file mode 100644
index 00000000000..b09bfe2dacd
--- /dev/null
+++ b/release/windows/msix/Assets/StoreLogo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/StoreLogo.scale-150.png b/release/windows/msix/Assets/StoreLogo.scale-150.png
new file mode 100644
index 00000000000..245e787a165
--- /dev/null
+++ b/release/windows/msix/Assets/StoreLogo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/StoreLogo.scale-200.png b/release/windows/msix/Assets/StoreLogo.scale-200.png
new file mode 100644
index 00000000000..54f13a83764
--- /dev/null
+++ b/release/windows/msix/Assets/StoreLogo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/StoreLogo.scale-400.png b/release/windows/msix/Assets/StoreLogo.scale-400.png
new file mode 100644
index 00000000000..2ca06f9f1c2
--- /dev/null
+++ b/release/windows/msix/Assets/StoreLogo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/Wide310x150Logo.png b/release/windows/msix/Assets/Wide310x150Logo.png
deleted file mode 100644
index 59f5736393a..00000000000
--- a/release/windows/msix/Assets/Wide310x150Logo.png
+++ /dev/null
Binary files differ
diff --git a/release/windows/msix/Assets/Wide310x150Logo.scale-100.png b/release/windows/msix/Assets/Wide310x150Logo.scale-100.png
new file mode 100644
index 00000000000..c0046dc1a95
--- /dev/null
+++ b/release/windows/msix/Assets/Wide310x150Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/Wide310x150Logo.scale-125.png b/release/windows/msix/Assets/Wide310x150Logo.scale-125.png
new file mode 100644
index 00000000000..96020b64ff5
--- /dev/null
+++ b/release/windows/msix/Assets/Wide310x150Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/Wide310x150Logo.scale-150.png b/release/windows/msix/Assets/Wide310x150Logo.scale-150.png
new file mode 100644
index 00000000000..07e595002b7
--- /dev/null
+++ b/release/windows/msix/Assets/Wide310x150Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/Wide310x150Logo.scale-200.png b/release/windows/msix/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 00000000000..c4d23671725
--- /dev/null
+++ b/release/windows/msix/Assets/Wide310x150Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/Wide310x150Logo.scale-400.png b/release/windows/msix/Assets/Wide310x150Logo.scale-400.png
new file mode 100644
index 00000000000..4a4cc681c93
--- /dev/null
+++ b/release/windows/msix/Assets/Wide310x150Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-100.png b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-100.png
new file mode 100644
index 00000000000..2b80942a398
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-125.png b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-125.png
new file mode 100644
index 00000000000..8d4e0e465ca
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-150.png b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-150.png
new file mode 100644
index 00000000000..83df5c55957
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-200.png b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-200.png
new file mode 100644
index 00000000000..b2570ef6d75
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-400.png b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-400.png
new file mode 100644
index 00000000000..2c926a60a56
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square150x150Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-100.png b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-100.png
new file mode 100644
index 00000000000..eb0d4a361be
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-125.png b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-125.png
new file mode 100644
index 00000000000..ede467343a2
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-150.png b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-150.png
new file mode 100644
index 00000000000..135ca033f55
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-200.png b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-200.png
new file mode 100644
index 00000000000..4fd3678ee55
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-400.png b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-400.png
new file mode 100644
index 00000000000..61093ac8704
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square310x310Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-16.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-16.png
new file mode 100644
index 00000000000..90fda9270e5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-24.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-24.png
new file mode 100644
index 00000000000..6fccdd1d638
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-24.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-256.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-256.png
new file mode 100644
index 00000000000..629ba37d24b
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-32.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-32.png
new file mode 100644
index 00000000000..f3b84b6d7f1
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-48.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-48.png
new file mode 100644
index 00000000000..192a56c9ad3
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-lightunplated_targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-16.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-16.png
new file mode 100644
index 00000000000..90fda9270e5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-256.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-256.png
new file mode 100644
index 00000000000..629ba37d24b
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-32.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-32.png
new file mode 100644
index 00000000000..f3b84b6d7f1
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-48.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-48.png
new file mode 100644
index 00000000000..192a56c9ad3
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.altform-unplated_targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-100.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-100.png
new file mode 100644
index 00000000000..ba3c1cdde8f
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-125.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-125.png
new file mode 100644
index 00000000000..16ef28a6c90
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-150.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-150.png
new file mode 100644
index 00000000000..e4375253066
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-200.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-200.png
new file mode 100644
index 00000000000..9415fc5a14f
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-400.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-400.png
new file mode 100644
index 00000000000..fa04d8d66a5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-16.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-16.png
new file mode 100644
index 00000000000..90fda9270e5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24.png
new file mode 100644
index 00000000000..6fccdd1d638
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24_altform-unplated.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 00000000000..6fccdd1d638
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-24_altform-unplated.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-256.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-256.png
new file mode 100644
index 00000000000..629ba37d24b
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-32.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-32.png
new file mode 100644
index 00000000000..f3b84b6d7f1
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-48.png b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-48.png
new file mode 100644
index 00000000000..192a56c9ad3
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square44x44Logo.targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-100.png b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-100.png
new file mode 100644
index 00000000000..a241bdd7196
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-125.png b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-125.png
new file mode 100644
index 00000000000..a688d81683e
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-150.png b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-150.png
new file mode 100644
index 00000000000..f414a89f878
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-200.png b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-200.png
new file mode 100644
index 00000000000..2ccc643ee36
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-400.png b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-400.png
new file mode 100644
index 00000000000..62a825e683a
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Square71x71Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/StoreLogo.scale-100.png b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-100.png
new file mode 100644
index 00000000000..8c1e0727843
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/StoreLogo.scale-125.png b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-125.png
new file mode 100644
index 00000000000..20cfa79d4a0
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/StoreLogo.scale-150.png b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-150.png
new file mode 100644
index 00000000000..be8e90a60bc
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/StoreLogo.scale-200.png b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-200.png
new file mode 100644
index 00000000000..9552777ed32
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/StoreLogo.scale-400.png b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-400.png
new file mode 100644
index 00000000000..59c2aa7164a
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/StoreLogo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-100.png b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-100.png
new file mode 100644
index 00000000000..bc9e482e9e6
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-125.png b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-125.png
new file mode 100644
index 00000000000..74876133648
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-150.png b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-150.png
new file mode 100644
index 00000000000..6e449381de7
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-200.png b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-200.png
new file mode 100644
index 00000000000..8b04684c736
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-400.png b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-400.png
new file mode 100644
index 00000000000..908ed5a8b23
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-black/Wide310x150Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-100.png b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-100.png
new file mode 100644
index 00000000000..354cd5facbb
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-125.png b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-125.png
new file mode 100644
index 00000000000..3dd0eb150b2
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-150.png b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-150.png
new file mode 100644
index 00000000000..bf68994926e
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-200.png b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-200.png
new file mode 100644
index 00000000000..b3a317150a9
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-400.png b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-400.png
new file mode 100644
index 00000000000..64a365ac020
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square150x150Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-100.png b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-100.png
new file mode 100644
index 00000000000..65391363a20
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-125.png b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-125.png
new file mode 100644
index 00000000000..7420af9ee92
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-150.png b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-150.png
new file mode 100644
index 00000000000..51a9f9034c7
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-200.png b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-200.png
new file mode 100644
index 00000000000..b71502f9007
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-400.png b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-400.png
new file mode 100644
index 00000000000..878e31f565d
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square310x310Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-16.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-16.png
new file mode 100644
index 00000000000..9ffb1958ed3
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-24.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-24.png
new file mode 100644
index 00000000000..06401f36cf4
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-24.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-256.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-256.png
new file mode 100644
index 00000000000..571721e6fe5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-32.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-32.png
new file mode 100644
index 00000000000..6f38345c41a
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-48.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-48.png
new file mode 100644
index 00000000000..8608b70a171
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-lightunplated_targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-16.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-16.png
new file mode 100644
index 00000000000..9ffb1958ed3
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-256.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-256.png
new file mode 100644
index 00000000000..571721e6fe5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-32.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-32.png
new file mode 100644
index 00000000000..6f38345c41a
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-48.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-48.png
new file mode 100644
index 00000000000..8608b70a171
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.altform-unplated_targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-100.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-100.png
new file mode 100644
index 00000000000..cc7db81d907
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-125.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-125.png
new file mode 100644
index 00000000000..b8954bef6b5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-150.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-150.png
new file mode 100644
index 00000000000..3b33386bc6e
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-200.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-200.png
new file mode 100644
index 00000000000..6366286326b
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-400.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-400.png
new file mode 100644
index 00000000000..124ca8f3994
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-16.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-16.png
new file mode 100644
index 00000000000..9ffb1958ed3
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-16.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24.png
new file mode 100644
index 00000000000..06401f36cf4
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24_altform-unplated.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 00000000000..06401f36cf4
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-24_altform-unplated.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-256.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-256.png
new file mode 100644
index 00000000000..571721e6fe5
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-256.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-32.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-32.png
new file mode 100644
index 00000000000..6f38345c41a
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-32.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-48.png b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-48.png
new file mode 100644
index 00000000000..8608b70a171
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square44x44Logo.targetsize-48.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-100.png b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-100.png
new file mode 100644
index 00000000000..edfc1014513
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-125.png b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-125.png
new file mode 100644
index 00000000000..5c15ccfdfde
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-150.png b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-150.png
new file mode 100644
index 00000000000..1a87eeca31a
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-200.png b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-200.png
new file mode 100644
index 00000000000..f14ca084141
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-400.png b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-400.png
new file mode 100644
index 00000000000..15282705f84
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Square71x71Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/StoreLogo.scale-100.png b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-100.png
new file mode 100644
index 00000000000..11c17d50a71
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/StoreLogo.scale-125.png b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-125.png
new file mode 100644
index 00000000000..89ecf276787
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/StoreLogo.scale-150.png b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-150.png
new file mode 100644
index 00000000000..5b13fe62d7f
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/StoreLogo.scale-200.png b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-200.png
new file mode 100644
index 00000000000..80a9c958ce7
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/StoreLogo.scale-400.png b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-400.png
new file mode 100644
index 00000000000..280442f90b0
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/StoreLogo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-100.png b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-100.png
new file mode 100644
index 00000000000..b41d0df775f
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-100.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-125.png b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-125.png
new file mode 100644
index 00000000000..030f2023f60
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-125.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-150.png b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-150.png
new file mode 100644
index 00000000000..7e50fc6c933
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-150.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-200.png b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-200.png
new file mode 100644
index 00000000000..73e241ae4eb
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-200.png
Binary files differ
diff --git a/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-400.png b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-400.png
new file mode 100644
index 00000000000..637f81da3bd
--- /dev/null
+++ b/release/windows/msix/Assets/contrast-white/Wide310x150Logo.scale-400.png
Binary files differ
diff --git a/release/windows/msix/README.md b/release/windows/msix/README.md
index 8967a655e3d..3f661a44066 100644
--- a/release/windows/msix/README.md
+++ b/release/windows/msix/README.md
@@ -9,8 +9,9 @@ needs to be signed.
Requirements
============
-* MakeAppX - this tool is distributed with Windows 10 SDK
-* SignTool - this tool is also distributed with Windows 10 SDK
+* MakeAppX.exe - this tool is distributed with the Windows 10 SDK and is used to build the .appx package.
+* MakePri.exe - this tool is distributed with the Windows 10 SDK and is used to generate a resources file.
+* SignTool.exe - this tool is distributed with the Windows 10 SDK and is used to sign the .appx package.
* Python 3 (3.7 or later tested) - to run the create_msix_package.py script
* requests module - can be installed with `pip install requests`
* PFX file (optional, but strongly recommended) - for signing the resulting MSIX
diff --git a/release/windows/msix/create_msix_package.py b/release/windows/msix/create_msix_package.py
index dda09a10d4b..3e41484eef5 100644
--- a/release/windows/msix/create_msix_package.py
+++ b/release/windows/msix/create_msix_package.py
@@ -95,6 +95,9 @@ content_blender_folder = pathlib.Path(content_folder, "Blender").absolute()
content_assets_folder = pathlib.Path(content_folder, "Assets")
assets_original_folder = pathlib.Path(".", "Assets")
+pri_config_file = pathlib.Path(".", "priconfig.xml")
+pri_resources_file = pathlib.Path(content_folder, "resources.pri")
+
local_blender_zip = pathlib.Path(".", "blender.zip")
if args.pfx:
@@ -107,6 +110,13 @@ else:
pfx_path = None
print("Creating MSIX package without signing.")
+pri_command = ["makepri",
+ "new",
+ "/pr", f"{content_folder.absolute()}",
+ "/cf", f"{pri_config_file.absolute()}",
+ "/of", f"{pri_resources_file.absolute()}"
+ ]
+
msix_command = ["makeappx",
"pack",
"/h", "SHA256",
@@ -165,6 +175,9 @@ with zipfile.ZipFile(local_blender_zip, "r") as blender_zip:
print("... extraction complete.")
+print(f"Generating Package Resource Index (PRI) file using command: {' '.join(pri_command)}")
+execute_command(pri_command, "MakePri", 4)
+
print(f"Creating MSIX package using command: {' '.join(msix_command)}")
# Remove MSIX file if it already exists. Otherwise the MakeAppX tool
diff --git a/release/windows/msix/priconfig.xml b/release/windows/msix/priconfig.xml
new file mode 100644
index 00000000000..482eb3b3ae9
--- /dev/null
+++ b/release/windows/msix/priconfig.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<resources targetOsVersion="10.0.0" majorVersion="1">
+ <packaging>
+ <autoResourcePackage qualifier="Language"/>
+ <autoResourcePackage qualifier="Scale"/>
+ </packaging>
+ <index root="\" startIndexAt="\">
+ <default>
+ <qualifier name="Language" value="en-US"/>
+ <qualifier name="Contrast" value="standard"/>
+ <qualifier name="Scale" value="100"/>
+ <qualifier name="HomeRegion" value="001"/>
+ <qualifier name="TargetSize" value="256"/>
+ <qualifier name="LayoutDirection" value="LTR"/>
+ <qualifier name="Theme" value="dark"/>
+ <qualifier name="AlternateForm" value=""/>
+ <qualifier name="DXFeatureLevel" value="DX9"/>
+ <qualifier name="Configuration" value=""/>
+ <qualifier name="DeviceFamily" value="Universal"/>
+ <qualifier name="Custom" value=""/>
+ </default>
+ <indexer-config type="folder" foldernameAsQualifier="true" filenameAsQualifier="true" qualifierDelimiter=".">
+ <exclude type="path" value="Blender" doNotTraverse="true" doNotIndex="true" />
+ </indexer-config>
+ </index>
+</resources> \ No newline at end of file